HDU5492 Find a path【DP】
来源:互联网 发布:科比09年体测数据 编辑:程序博客网 时间:2024/05/02 03:38
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5492
参考博文:http://blog.csdn.net/Baileys0530/article/details/48768123
AC代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#define LL __int64using namespace std;LL A[33][33],dp[33][33][2000];bool f[33][33][2000];int main(){ int T,kase = 0; LL N,M; scanf("%d",&T); while(T--) { scanf("%I64d%I64d",&N,&M); for(LL i = 1; i <= N; ++i) { for(LL j = 1; j <= M; ++j) { scanf("%I64d",&A[i][j]); } } memset(f,0,sizeof(f)); memset(dp,0x3f,sizeof(dp)); f[1][1][A[1][1]] = 1; dp[1][1][A[1][1]] = A[1][1]*A[1][1]; for(LL i = 1; i <= N; ++i) { for(LL j = 1; j <= M; ++j) { for(LL k = 0; k <= 30*(i+j-1); ++k) { if(f[i][j][k]) { if(i < N) { dp[i+1][j][k+A[i+1][j]] = min(dp[i+1][j][k+A[i+1][j]],dp[i][j][k]+A[i+1][j]*A[i+1][j]); f[i+1][j][k+A[i+1][j]] = 1; } if(j < M) { dp[i][j+1][k+A[i][j+1]] = min(dp[i][j+1][k+A[i][j+1]],dp[i][j][k]+A[i][j+1]*A[i][j+1]); f[i][j+1][k+A[i][j+1]] = 1; } } } } } LL ans = 0xfffffffffff0; for(LL i = 0; i <= 30*(N+M-1); ++i) if(f[N][M][i]) ans = min(ans,(N+M-1)*dp[N][M][i] - i*i); printf("Case #%d: %I64d\n",++kase,ans); } return 0;}
0 0
- hdu5492 Find a path dp
- hdu5492 Find a path(DP)
- HDU5492 Find a path DP
- HDU5492 Find a path【DP】
- HDU5492 Find a path (DP+水题)
- HDU5492-Find a path
- HDU5492 Find a path (动态规划)
- hdu5492 dp
- hdu5492(dp)
- hdu 5492 Find a path (DP)
- [dp] hdu 5492 Find a path
- hdu 5492 Find a path DP
- hdu 5492 Find a path【dp】
- DP HDOJ 5492 Find a path
- hdu 5492 Find a path(dp)
- HDU 5492 Find a path(DP)
- HDU 5492 Find a path(DP)
- HDU 5492 Find a path【DP】
- 1006. Sign In and Sign Out (25)
- URL::to() 与 URL::toRoute()
- 第4周项目5-循环双链表应用
- Servlet入门之HelloWorld
- 1007. Maximum Subsequence Sum (25)
- HDU5492 Find a path【DP】
- 1008. Elevator (20)
- Linux Shell学习笔记4:使用Linux环境变量
- 典型关联分析CCA(canonical correlation analysis)
- 网络方面的面试题
- [Cpp]去掉字符串空白2
- 大端对齐和小段对齐
- 全排列字典序与序号的一一对应关系 康托展开 perm2num num2 perm
- 1009. Product of Polynomials (25)