P1291 [SHOI2002]百事世界杯之旅 题目描述 "--在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!" 你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入输出格式 输入格式: 整数\(n\)(2≤n≤33),表示不同球星名字的个数. 输出格式: 输出凑齐所有的名字平均需…
题目传送门 百事世界杯之旅 题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!” 你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入输出格式 输入格式: 整数n(2≤n≤33),表示不同球星名字的个数. 输出格式: 输出凑齐所有的名字平均需要买的饮料瓶数.如果是一个整数,则直接…
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!” 你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入输出格式 输入格式: 整数n(2≤n≤33),表示不同球星名字的个数. 输出格式: 输出凑齐所有的名字平均需要买的饮料瓶数.如果是一个整数,则直接输出,否则应该直接按照分数格…
题目:https://www.luogu.org/problemnew/show/P1291 水水的经典期望DP: 输出有毒.(其实也很简单啦) 代码如下: #include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; ll n,fz[],fm[],s1,s2,ans,w,w2; //double f[35]; ll gcd(ll x,ll…
题链: 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(加一…
题目链接: kma 题目分析: 收集邮票的弱弱弱弱化版,因为是期望,考虑倒推 设\(f[i]\)表示现在已经买齐了\(i\)种,距离买完它的剩余期望次数 那么下一次抽有\(\frac{i}{n}\)的概率抽到已经有的,有\(\frac{n - i}{n}\)的概率抽到还没有的 那这两种情况的期望分别是\(\frac{i}{n} * f[i]\)和\(\frac{n - i}{n} * f[i + 1]\),再加上它自己的期望\(1\) 有\(f[i] = f[i] * \frac{i}{n} +…
题目:https://www.luogu.org/problemnew/show/P1291 大水题!套路!模板! 稍微注意一下输出就行了. #include<iostream> #include<cstdio> #include<cstring> #define ll long long using namespace std; ; ll n,a[N],b[N]; ll gcd(ll a,ll b){return b?gcd(b,a%b):a;} ll solve(l…
P1291 [SHOI2002]百事世界杯之旅 设$f(n,k)$表示共n个名字,剩下k个名字未收集到,还需购买饮料的平均次数 则有: $f(n,k)=\frac{n-k}{n}*f(n,k) + \frac{k}{n}*f(n,k+1) +1$ 移项整理,可得: $f(n,k)=f(n,k+1)+\frac{n}{k}$ 根据递推式,可得: $f(n,0)=n\sum_{k=1}^{n}\frac{1}{k}$ 蓝后gcd搞搞约分 注意输出 end. #include<iostream> #…
题目链接 luogu P1291 [SHOI2002]百事世界杯之旅 题解 设\(f[k]\)表示还有\(k\)个球员没有收集到的概率 再买一瓶,买到的概率是\(k/n\),买不到的概率是\((n-k) /k\) 那么\(f[k] = f[k]*(n-k)/n + f[k-1]*k/n + 1\) 移向一下\(f[k] = f[k-1] + n/k\) 代码 #include<cstdio> #include<cstring> #include<algorithm> i…
题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶快行动!” 你关上电视,心想:假设有n个不同的球星名字,每个名字出现的概率相同,平均需要买几瓶饮料才能凑齐所有的名字呢? 输入输出格式 输入格式: 整数n(2≤n≤33),表示不同球星名字的个数. 输出格式: 输出凑齐所有的名字平均需要买的饮料瓶数.如果是一个整数,则直接输出,否则应该直接按照分数格…