The 36th ACM/ICPC Asia Regional Fuzhou Site / 1001 A Card Game 简证
2011-10-07 21:03
211 查看
题目链接
这题题意描述得相当烦有木有!?其实就是M种牌放到M堆里,M种牌和M堆都是从1~M编号的。输入 M, 然后输入M个数,表示M种牌分别有多少张,同时也表示M堆分别的最大容量是多少。游戏是这样玩的,从第一堆开始由顶向下取(简单起见),取到的牌属于第k种,就接着到第k堆取。当任何一次取不到牌时,游戏结束。求游戏结束时牌恰好被取完的概率。
分析:假设取的牌顺序是一个序列,那么这种序列在末尾为1时是和取牌序列一一对应的,且是符合“游戏结束时牌恰好被取完”的一种情况。
简证:1、在序列中,任一数 i 的后一个数 j 是必然要放在第 i 堆里的。而值为 i 的数有 a[i]个,所以在 i 后面的数也恰好a[i]个,所以a[i]个数被放到第 i 堆,符合题目约束条件。
2、在序列中,由于游戏是从第一堆开始的,所以第一个数虽然没有前驱,但是他是放在第 1 堆的。所以如果 1 不为最后一个数,那么第一堆中必然有a[1]+1个数了,不行。
3、序列中的最后一个数 记 i ,如果不为 1 ,那么值 i 就只有a[i]-1个后继了。
4、结合2、3,易知只有最后一个数为 1 ,堆容量a[i]才会都符合。才能根据此序列构造一种符合的分堆及取牌(题目原意是随机取的)情况,即一一对应。
所以至此,题目转变为N个数的全排列,其中最后一个数为1的概率是多少。先从a[1]个1里取一个1,有a[1]种,然后剩下的N-1个数全排列有(N-1)!种,所以总共符合有a[1]*(N-1)!种。而N个数全排列有N!种。所以概率为a[1]/N。而N = sum(a[i])。
总结:这题分析起来挺简单有木有!?我觉得这题意相当扭曲(又N种牌,又N个堆,堆又有限制神马的),导致人比赛时无法看清真相....对很多队能意淫出公式表示膜拜..
代码:
这题题意描述得相当烦有木有!?其实就是M种牌放到M堆里,M种牌和M堆都是从1~M编号的。输入 M, 然后输入M个数,表示M种牌分别有多少张,同时也表示M堆分别的最大容量是多少。游戏是这样玩的,从第一堆开始由顶向下取(简单起见),取到的牌属于第k种,就接着到第k堆取。当任何一次取不到牌时,游戏结束。求游戏结束时牌恰好被取完的概率。
分析:假设取的牌顺序是一个序列,那么这种序列在末尾为1时是和取牌序列一一对应的,且是符合“游戏结束时牌恰好被取完”的一种情况。
简证:1、在序列中,任一数 i 的后一个数 j 是必然要放在第 i 堆里的。而值为 i 的数有 a[i]个,所以在 i 后面的数也恰好a[i]个,所以a[i]个数被放到第 i 堆,符合题目约束条件。
2、在序列中,由于游戏是从第一堆开始的,所以第一个数虽然没有前驱,但是他是放在第 1 堆的。所以如果 1 不为最后一个数,那么第一堆中必然有a[1]+1个数了,不行。
3、序列中的最后一个数 记 i ,如果不为 1 ,那么值 i 就只有a[i]-1个后继了。
4、结合2、3,易知只有最后一个数为 1 ,堆容量a[i]才会都符合。才能根据此序列构造一种符合的分堆及取牌(题目原意是随机取的)情况,即一一对应。
所以至此,题目转变为N个数的全排列,其中最后一个数为1的概率是多少。先从a[1]个1里取一个1,有a[1]种,然后剩下的N-1个数全排列有(N-1)!种,所以总共符合有a[1]*(N-1)!种。而N个数全排列有N!种。所以概率为a[1]/N。而N = sum(a[i])。
总结:这题分析起来挺简单有木有!?我觉得这题意相当扭曲(又N种牌,又N个堆,堆又有限制神马的),导致人比赛时无法看清真相....对很多队能意淫出公式表示膜拜..
代码:
#include<iostream> using namespace std; int main() { int T; cin>>T; for(int t=0; t<T; t++) { int n; cin>>n; int a; int b; long long sum=0; cin>>a; sum+=a; for(int i=1;i<n;++i) { cin>>b; sum+=b; } printf("Case %d: %6f\n",t+1,(a+0.0)/sum); } }
相关文章推荐
- The 36th ACM/ICPC Asia Regional Fuzhou Site / 1001 A Card Game 简证
- HDU 4063 Aircraft(计算几何)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)
- HDU 4064 Carcassonne(插头DP)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)
- The 36th ACM/ICPC Asia Regional Fuzhou Site / 1010 War
- The 36th ACM/ICPC Asia Regional Fuzhou Site / 1010 War
- HDU 4069 Squiggly Sudoku(DLX)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)
- HDU 4031 Attack(离线+线段树)(The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest)
- 【转】The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest 出题报告
- The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - G Panda
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest Find the maximum
- hdu 4011 The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup Working in Beijing
- HDU4022-map+multiset--The 36th ACM/ICPC Asia Regional Shanghai Site —— Online Contest
- The 36th ACM/ICPC Asia Regional Shanghai Site —— Warmup hdu 4016 Magic Bitwise And Operation
- The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - B_Eliminate Witches!
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest &&The kth great number
- The 36th ACM/ICPC Asia Regional Shanghai Site 4016(dfs+剪枝)
- The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest
- The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest
- The 36th ACM/ICPC Asia Regional Dalian Site 1003 The Frog's Games
- 【树状数组】The 36th ACM/ICPC Asia Regional Beijing Site Online Contest - G Panda