UVa 12034 比赛名次(递推)
2017-04-09 23:51
323 查看
https://vjudge.net/problem/UVA-12034
题意:
A、B两人赛马,最终名次有3种可能:并列第一;A第一B第二;B第一A第二。输入n,求n人赛马时最终名次的可能性的个数除以10056的余数。
思路:
设答案为f(n),假设第一名有i个人,接下来就会有f(n-i)种可能性,所以答案为
。
题意:
A、B两人赛马,最终名次有3种可能:并列第一;A第一B第二;B第一A第二。输入n,求n人赛马时最终名次的可能性的个数除以10056的余数。
思路:
设答案为f(n),假设第一名有i个人,接下来就会有f(n-i)种可能性,所以答案为
。
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<queue> using namespace std; const int maxn=1000+100; #define mod 10056 int c[maxn][maxn]; int f[maxn]; void init() { for(int i=0;i<maxn;i++) { c[i][0]=1; for(int j=1;j<=i;j++) { c[i][j]=c[i-1][j-1]+c[i-1][j]; c[i][j]%=mod; } } } int solve(int n) { if(f ) return f ; for(int i=1;i<=n;i++) { f +=c [i]*solve(n-i); f %=mod; } return f ; } int main() { int T; scanf("%d",&T); init(); f[0]=1; for(int kase=1;kase<=T;kase++) { int n; scanf("%d",&n); solve(n); printf("Case %d: %d\n",kase,f ); } }
相关文章推荐
- 排列组合,递推(比赛名次,uva 12034)
- UVa 12034 - Race(组合+递推)
- Race - UVa 12034 递推
- 【UVA】12034-Race(递推,组合数打表)
- UVA 12034 Race 赛马名次
- uva 12034 比赛排名
- UVA 12034 - Race(递推)
- uva12034(递推关系)
- UVa 12034 (递推) Race
- UVA 12034 Race 动态规划+递推
- HDU - 1285 确定比赛名次 &&UVA - 10305 Ordering Tasks (拓扑排序)
- uva 12034 Race递推
- CSU-ACM2017暑期训练3-递推与递归 H - Race UVA - 12034
- UVA 12034 Race(递推)
- UVa12034 Race 递推
- 拓扑排序杭电 1285确定比赛名次
- 确定比赛名次
- hdu 1285 确定比赛名次
- hdu1285(确定比赛名次)初学拓扑
- UVA 557 - Burger(概率 递推)