题链:

https://www.luogu.org/recordnew/show/5861351
题解:

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<bits/stdc++.h>
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<<a/b;
else{
long long c=a/b;
a=a-c*b;
long long g=gcd(a,b);
a/=g; b/=g;
long long cntc=getcnt(c);
long long cnta=getcnt(a);
long long cntb=getcnt(b);
cout<<setfill(' ')<<setw(cntc+cnta)<<right<<a<<endl;
cout<<setfill('-')<<setw(max(cnta,cntb)+cntc)<<left<<c<<endl;
cout<<setfill(' ')<<setw(cntc+cntb)<<right<<b<<endl;
}
return 0;
}

  

●洛谷P1291 [SHOI2002]百事世界杯之旅的更多相关文章

  1. 洛谷 P1291 [SHOI2002]百事世界杯之旅 解题报告

    P1291 [SHOI2002]百事世界杯之旅 题目描述 "--在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽 ...

  2. 洛谷P1291 [SHOI2002]百事世界杯之旅 [数学期望]

    题目传送门 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听, ...

  3. 洛谷P1291 [SHOI2002]百事世界杯之旅(期望DP)

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  4. 洛谷P1291 [SHOI2002]百事世界杯之旅——期望DP

    题目:https://www.luogu.org/problemnew/show/P1291 水水的经典期望DP: 输出有毒.(其实也很简单啦) 代码如下: #include<iostream& ...

  5. 洛谷P1291 [SHOI2002]百事世界杯之旅

    题目链接: kma 题目分析: 收集邮票的弱弱弱弱化版,因为是期望,考虑倒推 设\(f[i]\)表示现在已经买齐了\(i\)种,距离买完它的剩余期望次数 那么下一次抽有\(\frac{i}{n}\)的 ...

  6. 洛谷 1291 [SHOI2002]百事世界杯之旅

    题目:https://www.luogu.org/problemnew/show/P1291 大水题!套路!模板! 稍微注意一下输出就行了. #include<iostream> #inc ...

  7. P1291 [SHOI2002]百事世界杯之旅(概率)

    P1291 [SHOI2002]百事世界杯之旅 设$f(n,k)$表示共n个名字,剩下k个名字未收集到,还需购买饮料的平均次数 则有: $f(n,k)=\frac{n-k}{n}*f(n,k) + \ ...

  8. luogu P1291 [SHOI2002]百事世界杯之旅

    题目链接 luogu P1291 [SHOI2002]百事世界杯之旅 题解 设\(f[k]\)表示还有\(k\)个球员没有收集到的概率 再买一瓶,买到的概率是\(k/n\),买不到的概率是\((n-k ...

  9. P1291 [SHOI2002]百事世界杯之旅

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

随机推荐

  1. 【Alpha版本】冲刺阶段 - Day5 - 破浪

    今日进展 袁逸灏:解决音乐播放问题以及跳转问题.(5h) 刘伟康:大致检查了测试规范,参考了其他 alpha 阶段的博客.(1h) 刘先润:解决了敌车与障碍物溢出边界的代码问题,给用户车辆增加了火焰喷 ...

  2. 基于Python的Web应用开发实践总结

    基于Python的Web应用开发学习总结 项目地址   本次学习采用的是Flask框架.根据教程开发个人博客系统.博客界面如图所示. 整个学习过程收获很多,以下是学习总结. 1.virtualenv ...

  3. Java作业-数据库

    本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 在Java中使用数据库要经过以下几个步骤: 1. 注册 JDBC 驱动 Class.forName("com ...

  4. web.config中configSections section节 -Z

    由于最近一个项目的数据库变动比较频繁, 为了减少数据层的负担, 打算采用.net的MVC框架, 使用LINQ对付数据层.       这个框架的web.config文件里出现了configSectio ...

  5. MyGod_alpha版本测试报告

    买尬-Alpha版本测试报告 @(二手市场APP)[MyGod团队|团队项目|版本测试] 项目名称:武汉大学校园二手市场APP--买尬 软件版本:1.0.0 开发团队:MyGod 开发代表:程环宇 张 ...

  6. 【Swift】iOS裁剪或者压缩后出现的白边问题

    只需要将所有的CGFloat转化为NSInteger即可 func imageScaleSize(newSize: CGSize) -> UIImage{ let width = NSInteg ...

  7. TSP-旅行商问题

    #include <iostream> #include <vector> #include <algorithm> using namespace std; in ...

  8. C实现单链表

    typedef int DataType; typedef struct ListNode { DataType data; struct ListNode* next; }ListNode; //初 ...

  9. Ubuntu安装使用latex

    TeX Live is a TeX distribution to get up and running with the TeX document production system. To ins ...

  10. 【编程开发】PHP---面向对象

    面向对象编程 类:在现实世界中,任何事物都有种类的概念:车 类是由特征和行为构成的. 特征:都是不动的,从出厂的时候就已经内置好了(属性) 行为:一种动的状态.(方法(函数)) 行为依赖于这些特征,而 ...