UVA 12034:Race (动态规划)
来源:互联网 发布:怎么买特价机票知乎 编辑:程序博客网 时间:2024/05/16 05:47
Race
点击查看题目内容
题意:
现在有n匹马,要求安排出场顺序,可以有多匹马同时出场,问一共有多少种方式。
解题思路:
设一共i匹马时,出场次序数量为 j 时的出场方式为 a[i][j] 1匹马的情况:a[1][1]=1 没啥好说的2匹马的情况:a[2][1]=1 , 对于a[2][2] 只能在a[1][1]的基础上把第二匹马放到前面或后面, 所以a[2][2]=a[1][1]*2=23匹马的情况:a[3][1]=1 , 对于 a[3][2],就可以在a[2][1]的基础上前后加一条,也可在a[2][2]的基础上任选和其中一匹马同时跑,由此 a[3][2]=a[2][1]*2+a[2][2]*2
图虽然画的比较难看。。还是看图吧
总之由上面的规律就能得出状态转移方程
Code:
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1005;const int mod=10056;int dp[maxn][maxn];int main(){ mem(dp,0); for(int i=1;i<=1000;i++) { for(int j=1;j<=i;j++) { if(j==1) dp[i][j]=1; else dp[i][j]=(dp[i-1][j-1]*j+dp[i-1][j]*j)%mod; } } int T; cin>>T; for(int ca=1;ca<=T;ca++) { int n; cin>>n; int sum=0; for(int i=1;i<=n;i++) sum=(sum+dp[n][i])%mod; cout<<"Case "<<ca<<": "<<sum<<endl; } return 0;}
阅读全文
0 0
- UVA 12034:Race (动态规划)
- UVA 12034 Race 动态规划+递推
- uva 12034 Race(dp)
- UVa 12034 - Race
- UVA - 12034 Race
- UVA 12034 Race
- UVA 12034 Race
- UVA 12034-Race
- uva 12034 Race
- UVA 12034(p332)----Race
- uva 12034 Race
- UVA 12034 Race
- UVA 12034 Race
- UVa 12034 Race
- UVa 12034 Race
- UVA 12034 Race
- UVA 12034 Race
- UVA 1638(动态规划)
- 创建数组
- 面向接口编程
- 杭电acm—1009 FatMouse' Trade
- Android列表滑动加载实现
- 论文阅读:CopyNet
- UVA 12034:Race (动态规划)
- canvas 对图片进行涂抹,涂抹区域保存图片存入本地
- js的Date和Math的对象
- 第四天总结
- 解题报告:HDU_5909:Tree Cutting 树上FWT
- 日志中不打印异常堆栈
- js 冒泡排序
- React Native移动开发实战-1-React Native的JSX解决方案
- 用模板实现顺序表和带头结点的双向循环链表