JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
2017-01-18 07:47
387 查看
题目
学校的运动会开始了,体能很菜的小可可没报任何比赛项目,于是和同学们玩一个十分无聊的游戏。游戏在一个由n*n个方格组成的正方形棋盘上进行,首先在每个方格上均匀随机地填入1到m之间的正整数(每个方格填的数均不同),然后小可可均匀随机地选出k个1到m的数字(可能选的数不在棋盘上),把它们出现在棋盘上的方格涂黑,设有R行被整行涂黑,有C列被整列涂黑,小可可便可以得到2^(R+C)分。
现在小可可想知道他的期望得分是多少,你能帮助他吗?
样例输入
1 2 1
样例输出
4.5
样例解释
在1*1的方格中填入1,选1或2,得分分别为2^2=4和2^0=1;在1*1的方格中填入2,选1或2,得分分别为2^0=1和2^2=4,所以期望得分为(4+1+1+4)/4=2.5。
数据范围
对于100%的数据,2≤n≤300, n*n≤m≤100000, n≤k≤m。
题解
给定一个全涂黑的行集合R和列集合C,设这些行和列被涂黑的概率为pr,c,那么ans显然等于ΣR,Cpr,c。再设r=|R|,c=|C|,(|a|为集合a元素的个数)∵ R,C 集合大小相同的 pR,C 也相同
所以ans=Σnr=0Σnc=0CrnCcn∗pr,c
其中pR,C=Ck−tm−tCkmt为涂全黑R行,C列总共涂黑的格子,即t=n(r+c)−rc。
用一个简单的DP做就OK了。
注意事项:
由于DP式中的C下面的数都是n,所以我们设C[i]表示Cin,因为Ci−1n=(n−i+1+1)∗...∗n(n−i+1)!所以,Cin=Ci−1n∗n−i+1i。
因为pR,C=Ck−tm−tCkm,k和m不变,变的只有t,所以考虑一下怎么将Ck−(t−1)m−(t−1)Ckm转移到Ck−tm−tCkm。
∵Ck−tm−tCkm=(m−t)!(m−k)!k!(m−k)!(k−t)!m!=(m−t)!k!(k−t)!m!,Ck−(t−1)m−(t−1)Ckm=(m−t+1)!k!(k−t+1)!m!
∴Ck−tm−tCkmCk−(t−1)m−(t−1)Ckm=k−t+1m−t+1
然后去递推就行了。
代码
#include<iostream> #include<cstdio> #include<cmath> #define N 100003 #define DB long double #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; int n,m,k,i,r,c,t; DB jc ,C ,Q ,ans; int main() { scanf("%d%d%d",&n,&m,&k); C[0]=Q[0]=1; fo(i,1,n) C[i]=C[i-1]*((DB)(n-i+1)/i); fo(i,1,k) Q[i]=Q[i-1]*((DB)(k-i+1)/(m-i+1)); fo(r,0,n) fo(c,0,n) { t=n*(r+c)-r*c; if (t<=k) ans=ans+Q[t]*C[r]*C[c]; } if (ans>1e+99) ans=1e+99; printf("%LF",ans); }
相关文章推荐
- 【JZOJ3871】【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- JZOJ 3870. 【NOIP2014八校联考第4场第1试10.19】单词检索(search)
- JZOJ3870. 【NOIP2014八校联考第4场第1试10.19】单词检索(search)
- 【JZOJ3872】【NOIP2014八校联考第4场第1试10.19】圣诞树(tree)
- 【JZOJ3870】【NOIP2014八校联考第4场第1试10.19】单词检索(search)
- [jzoj]3875. 【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)(图论题,构树+缩点+LCA+并查集)
- JZOJ 3875. 【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)
- 【JZOJ3875】【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)
- JZOJ 3845. 【NOIP2014八校联考第1场第1试9.20】简单题
- [jzoj]3874. 【NOIP2014八校联考第4场第2试10.20】准备复赛(exam)(树形DP+组合数)
- jzoj. 3873. 【NOIP2014八校联考第4场第2试10.20】乐曲创作(music)
- 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- 【JZOJ3874】【NOIP2014八校联考第4场第2试10.20】准备复赛(exam)
- JZOJ3845. 【NOIP2014八校联考第1场第1试9.20】简单题(simple)
- 【JZOJ3875】【NOIP2014八校联考第4场第2试10.20】星球联盟(alliance)
- JZOJ3847. 【NOIP2014八校联考第1场第2试9.21】都市环游(travel)
- 【NOIP2014八校联考第1场第1试9.20】简单题
- [JZOJ]3856. 【NOIP2014八校联考第3场第1试10.4】规避
- 高中OJ3874. 【NOIP2014八校联考第4场第2试10.20】准备复赛(exam)