博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
●洛谷P1291 [SHOI2002]百事世界杯之旅
阅读量:4511 次
发布时间:2019-06-08

本文共 704 字,大约阅读时间需要 2 分钟。

题链:

题解:

dp,期望

定义dp[i]表示还剩下i个盖子没收集时,期望还需要多少次才能手机完。
初始值:dp[0]=0
显然对于一个状态,我们随机得到一个盖子,有两种可能:
1.得到了曾经没有的盖子,概率为i/N,并转移到dp[i-1]。
2.得到了已经有了的盖子,概率为(N-i)/N,并转移到dp[i]。
所以dp转移式:
dp[i]=(i/n)*dp[i-1]+((N-i)/i)*dp[i]+1(加一表示本次的操作对答案贡献了1的值)
移项:
(i/N)dp[i]=(i/N)dp[i-1]+1
dp[i]=dp[i-1]+(N/i)
然后按上式累加起来就是答案了。

代码:

 

#include
using namespace std;int N;long long getcnt(long long rtm){ int cnt=0; while(rtm) cnt++,rtm/=10; return cnt;}long long gcd(long long a,long long b){ while(b^=a^=b^=a%=b); return a;}int main(){ cin>>N; long long a=0,b=1; for(long long i=1,g;i<=N;i++) g=gcd(b,i),b=b/g*i; for(long long i=1,g;i<=N;i++) g=b/i,a+=N*g; if(a%b==0) cout<

 

  

 

转载于:https://www.cnblogs.com/zj75211/p/8541919.html

你可能感兴趣的文章
项目的质量管理活动与通行方法
查看>>
VS2010快捷键
查看>>
【转】CSS Nuggest
查看>>
为什么开发人员工作10多年了还会迷茫?没有安全感
查看>>
在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因...
查看>>
个人github链接及git学习心得总结
查看>>
c++ 计算器 带括号 代码实现
查看>>
objective -c初写
查看>>
C#中如何设置窗体的默认按钮和取消按钮
查看>>
[Swift]LeetCode276. 粉刷栅栏 $ Paint Fence
查看>>
[Swift]LeetCode351. 安卓解锁模式 $ Android Unlock Patterns
查看>>
break语句和continue语句
查看>>
python学习笔记(xlwt/xlrd下载安装)
查看>>
java代码中添加log4j日志
查看>>
Java学习不走弯路教程(19 对于Service的自动注入)
查看>>
[CSS3] :empty Selector
查看>>
webpack4 入门(二)
查看>>
LoadRunner基本简介
查看>>
编写一个模拟注册用户和验证用户登陆的程序
查看>>
jquery 左侧多级菜单 根据xml文件自动生成
查看>>