HDU 1176
来源:互联网 发布:sql删除存储过程语句 编辑:程序博客网 时间:2024/06/05 09:46
动态规划题
dp[i][j] = dp[i+1][j-1] + dp[i+1][j] + dp[i+1][j+1];/* **表示第i秒到位置j共取得的馅饼** 采用自底向上求解法,因为每一次选择(左、右、停)都基于下一次怎么走才能取得最大,所以直接逆着推** 举个例子, 不妨假设倒数第二个位置为i就能确定最后的位置( 现 择),然后更新这个倒数第二个位置的馅饼(加上最后位置的馅饼),同理向上走。*/
嗯.. 就是那个数塔模型!
P.S.
动态规划题基于动态规划的数塔模型算法
#include <iostream>#include <algorithm>using namespace std;int val[100010][11];int dp[100010][11];int main(){ int n; while(~scanf("%d",&n),n){ memset(dp,0,sizeof(dp)); memset(val,0,sizeof(val)); int pi,tt,_time=0; for(int i=0;i<n;i++){ scanf("%d%d",&pi,&tt); val[tt][pi]++; if(tt>_time) _time = tt; } for(int i=_time;i>=0;i--){ for(int j=0;j<11;j++){ if(j==0) dp[i][j]=max(dp[i+1][j+1],dp[i+1][j])+val[i][j]; else if(j==10) dp[i][j]=max(dp[i+1][j-1],dp[i+1][j])+val[i][j]; else dp[i][j]=max(dp[i+1][j],max(dp[i+1][j-1],dp[i+1][j+1]))+val[i][j]; } } printf("%d\n",dp[0][5]); } return 0;}
0 0
- hdu 1176
- hdu 1176
- hdu 1176
- HDU 1176 !
- hdu 1176
- HDU 1176
- hdu 1176
- hdu 1176
- hdu 1176
- hdu 1176
- HDU 1176
- hdu 1176
- hdu 1176
- hdu 1176
- hdu-1176
- HDU 1176
- hdu 1176
- HDU 1176
- ld: file not found: /Users/Username/Library/Developer/Xcode/DerivedData/allinns_business-aezaultqw
- 快速理解 Phoenix : SQL on HBASE
- Android之TabHost布局
- Find Minimum in Rotated Sorted Array II
- js+css手机号码提示信息框
- HDU 1176
- JavaScript之保留小数点后指定位数
- Linux常用命令(四十一) - at
- Web调试工具 Fiddler 教程
- TOP域名登陆全球平台
- 使用SVN clang: error: linker command failed with exit code 1 (use -v to see invocation)
- 6,嵌入式Linus之中断控制器
- 高性能软件系统设计中应该考虑的问题
- Find Minimum in Rotated Sorted Array II