HDU2151
来源:互联网 发布:用友nc java版本win7 编辑:程序博客网 时间:2024/06/05 12:46
题意:一条虫子每单位时间能向左或向右走一步,问规定时间内从起点到终点有多少种方式
思路:这题如果搜索的话会超时(每一种答案都需要o(1)的时间,题目说明答案小于10^9),那么只能dp,而因为可经过同一点多次,所以需要想一种不受之前步数影响的dp方法,滚动数组就可以保证在单位时间内当前状态不会受除前一时间状态的影响
这题算是加深了我对滚动数组的理解,最大的特点在于通过划分状态的某个维度进行dp,从而保证每一个状态满足dp的要求
代码:
#include<iostream>#include<cstdio>#include<cstdlib>#include<string>#include<iomanip>#include<cmath>#include<cstring>#include<algorithm>#include<stack>#include<queue>#include<vector>#include<set>#include<map>using namespace std;const int MAXN = 110;int n,beg,tim,tar,str[MAXN][MAXN];int Max(int a,int b){ return a>b?a:b;}int main(){ while(~scanf("%d%d%d%d",&n,&beg,&tim,&tar)) { memset(str,0,sizeof str); str[0][beg]=1; for(int i=1;i<=tim;i++) { str[i][1]=str[i-1][2]; str[i][n]=str[i-1][n-1]; for(int j=2;j<=n-1;j++) str[i][j]=str[i-1][j-1]+str[i-1][j+1]; } printf("%d\n",str[tim][tar]); } return 0;}
0 0
- hdu2151
- HDU2151
- hdu2151
- HDU2151
- Worm hdu2151
- hdu2151 Worm
- HDU2151 【DP】
- hdu2151 worm
- hdu2151——Worm
- hdu2151(概率dp)
- HDU2151 Worm 动态规划
- HDU2151——worm
- hdu2151 Worm DP
- Worm(毛毛虫)HDU2151
- 【端午小练】HDU2151-Worm
- HDU2151:Worm(简单dp)
- hdu2151 Check the difficulty of problems
- BabeLua配置
- 组播Multicast 1 overview
- 垂直居中
- Quartz应用与集群原理分析
- hdu 2111 Saving HDU
- HDU2151
- 组播Multicast 2 PIM
- 【CF 609E】Street
- hdu_5589_Tree(莫队+字典树)
- 添加下拉刷新
- 自制 Python小工具 将markdown文件转换成Html文件
- 很好的wkwebview文档
- 5-1 字符串转换成十进制整数 (15分) (这是补上的7月6号)
- C++之运算法重载详解