广告公司网站建设策划书,WordPress修改网站背景,深圳市住宅和建设网站,个人养老金制度相关细则神、上帝以及老天爷
Problem Description HDU 2006’10 ACM contest的颁奖晚会隆重开始了#xff01; 为了活跃气氛#xff0c;组织者举行了一个别开生面、奖品丰厚的抽奖活动#xff0c;这个活动的具体要求是这样的#xff1a;
首先#xff0c;所有参加晚会的人员都将一…神、上帝以及老天爷
Problem Description HDU 2006’10 ACM contest的颁奖晚会隆重开始了 为了活跃气氛组织者举行了一个别开生面、奖品丰厚的抽奖活动这个活动的具体要求是这样的
首先所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中 然后待所有字条加入完毕每人从箱中取一个字条 最后如果取得的字条上写的就是自己的名字那么“恭喜你中奖了”
大家可以想象一下当时的气氛之热烈毕竟中奖者的奖品是大家梦寐以求的Twins签名照呀不过正如所有试图设计的喜剧往往以悲剧结尾这次抽奖活动最后竟然没有一个人中奖
我的神、上帝以及老天爷呀怎么会这样呢
不过先不要激动现在问题来了你能计算一下发生这种情况的概率吗
不会算难道你也想以悲剧结尾
Input 输入数据的第一行是一个整数C,表示测试实例的个数然后是C 行数据每行包含一个整数n(1n20),表示参加抽奖的人数。
Output 对于每个测试实例请输出发生这种情况的百分比每个实例的输出占一行, 结果保留两位小数(四舍五入)具体格式请参照sample output。
Sample Input 1 2
Sample Output 50.00%
Author lcy
Source 递推求解专题练习For Beginner
解题思路 考虑n人时的情况。 1.n-1人均错。 此时第n人与n-1人中任意一人交换字条即可。
f(n-1)*(n-1)2.n-1人中有一人拿到了自己的字条。 此时第n人与该人交换字条即可。
f(n-2)*(n-1)从而得到递推公式
f(n)(n-1)*(f(n-1)f(n-2))AC
#includestdio.h
#includecstring
#includeiostream
using namespace std;
int main() {int n;int num;double c[50];double all[50];c[1] 0;c[2] 1;all[1] 1.;for (int i 3; i 20; i)c[i] (i - 1) * (c[i - 1] c[i - 2]);for (int i 2; i 20; i)all[i] all[i - 1] * i;while (scanf(%d, n) ! EOF) {while (n--) {scanf(%d, num);printf(%.2lf%%\n, (c[num] / all[num]) * 100);}}return 0;
}