题目 解题思路:      典型的错排题目      首先求出所有的拿错的情况,然后求出错排的所有情况,以前者除以后者就是百分比      现在求对应的所有都拿错的情况.容易知道,f(1)=0,f(2)=1      然后,对于N个人,有n-1个人拿错票和n-2个人拿错票的情况     ① 当有n-1个拿错票时,在加入一个人,只要第n个人和前面任意的n-1个人其中一个调换票就可以了,所以有f(n-1)*(n-1). ②当有n-2个拿错票时,只能是没拿错的那个人与第n个交换票,而那个人可能是前面n…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2048 1. N张字条的所有可能排列自然是N!(分母). 现在的问题就是求N张字条的错排数f(N)(分子). 首先我们考虑,如果前面N-1个人拿的都不是自己的票,即前N-1个人满足错排,现在又来了一个人,他手里拿的是自己的票.只要他把 自己的票与其他N-1个人中的任意一个交换,就可以满足N个人的错排.这时有(N-1)*f(N-1)种方法. Besides,我们考虑,如果前N-1个人不满足错排,而第N个…
中文题,错排,求概率,不解释,核心思路同 HDU 1465 错排简单思路可看:http://www.cnblogs.com/laiba2004/p/3235934.html //错排,但是我之前叫了几次都是错的,所以,我去看了相关的知识,嘿嘿 #include<stdio.h> __int64 f(__int64 n) { ); ); ) ; )*(f(n-)+f(n-)); } int main() { __int64 t,n,sum,nn; scanf("%I64d",…
直接贴出递推公式: cnt[n]=(i-1)*(cnt[n-1]+cnt[n-2]); 数组保存的是失败的种数 AC代码: #include<cstdio> const int maxn=21; long long p[maxn],cnt[maxn]; double ans[maxn]; void solve(){ long long w=1; for(int i=1;i<=20;++i){ w*=i; p[i]=w; } cnt[1]=0; cnt[2]=1; ans[1]=100;…
#include<stdio.h> ] = { -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,- }; ] = { }; long long jiecheng(int n) { ) { return b[n]; } )*n; } long long recrusion(int n) { ) return a[n]; )*(recrusion(n - ) + recrusion(n - )); } int main() { int n, m; int i;…
题目链接 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了!为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这样的:首先,所有参加晚会的人员都将一张写有自己名字的字条放入抽奖箱中:然后,待所有字条加入完毕,每人从箱中取一个字条:最后,如果取得的字条上写的就是自己的名字,那么“恭喜你,中奖了!”大家可以想象一下当时的气氛之热烈,毕竟中奖者的奖品是大家梦寐以求的Twins签名照呀!不过,正如所有试图设计的喜剧往…
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2048 神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50263    Accepted Submission(s): 20303 Problem Description HDU 2006'10 ACM contest的颁…
神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22063    Accepted Submission(s): 9286 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了!为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这样的:…
http://acm.hdu.edu.cn/showproblem.php?pid=5459 题意: S(1) = c,S(2) = ff, S(3) = cff,之后S(i) = S(i-1)+S(i-2). 现在给出n,求S(n)中任意两个c之间距离的总和. 思路:现在假设第i-1和第i-2要合成第i个,计算S(i)的过程如下: ans[i] = ans[i-1]+ans[i-2]+add,现在要求就是add新增的部分值. 假设S(i-2)中有2个c,下标分别为{a,b}(下标以1为起始点计…
Problem Description 一个{1, ..., n}的子集S被称为JZP集,当且仅当对于任意S中的两个数x,y,若(x+y)/2为整数,那么(x+y)/2也属于S.例如,n=3,S={1,3}不是JZP集,因为(1+3)/2=2不属于S.但是{1,2,3}的其他子集都属于S,所以n=3时有7个JZP集给定n,求JZP集的个数.   Input 第一行为T,表示输入数据组数.每组数据包含一行整数n. 限制条件1<=T<=10^51<=n<=10^7   Output 对…