牧场物语
来源:互联网 发布:易语言创建sql数据库 编辑:程序博客网 时间:2024/05/17 01:29
题目网址:http://acm.fzu.edu.cn/problem.php?pid=2234
#include"stdio.h"_int64 dp[105][105][200];_int64 max(_int64 a,_int64 b){ return a>=b?a:b;}int main(){ _int64 const min=1e18; int i,j,k,n; int Ilie,Jlie; int value,ai[110][110]; while(scanf("%d",&n)==1) { for (i=0;i<=n;i++) { for (j=0;j<=n;j++) { for (k=0;k<=2*n-2;k++) { dp[i][j][k]=-min; } } } for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { scanf("%d",&ai[i][j]); } } dp[1][1][0]=ai[1][1]; for (k=1;k<=2*n-2;k++) { for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { Ilie=k-i+2; Jlie=k-j+2; value=0; if (i==1&&j==1&&Ilie==1&&Jlie==1) { continue; } if (Ilie>=1&&Ilie<=n&&Jlie>=1&&Jlie<=n) { if (i==j&&Ilie==Jlie) { value=ai[i][Ilie]; } else value=ai[i][Ilie]+ai[j][Jlie]; dp[i][j][k]=max(dp[i][j][k],dp[i][j][k-1]+value); dp[i][j][k]=max(dp[i][j][k],dp[i-1][j][k-1]+value); dp[i][j][k]=max(dp[i][j][k],dp[i][j-1][k-1]+value); dp[i][j][k]=max(dp[i][j][k],dp[i-1][j-1][k-1]+value); } } } } printf("%I64d\n",dp[n][n][2*n-2]); } return 0;}
动态规划好题,我们可以理解为有两个人同时从起点走到终点,动态转移方程中dp[i][j][k],i,j,j分别表示第一个人的行,第二个人的行和步数
0 0
- 牧场物语
- 牧场物语
- 牧场物语 FZU
- 牧场物语 FZU
- Fzu 2234 牧场物语(DP)
- 《新牧场物语》攻略(转自百度)
- 双线dp ——牧场物语
- FZU 2234 牧场物语(dp 好题)
- (转)《牧场物语》制作人分享RPG设计经验
- 福州大学第十三届程序设计竞赛_重现 F 牧场物语
- fzoj 2234 牧场物语 (多线程DP&滚动数组) 好题
- FZU 2234 牧场物语【Dp】好题!好题!
- FZU 2234 牧场物语(多进程dp)
- 爱情物语
- 心情物语
- 失恋物语
- 开篇物语
- 心情物语
- HDOJ 1099 Lottery
- 无分类编址CIDR(构造超网)
- 简易ATM机
- python 时间模块
- 随笔
- 牧场物语
- 取代matlab, Linux下科学计算环境的搭建
- Java并发编程:volatile关键字解析
- Android设计模式(二)- Builder模式
- Simulink 模块仿真验证
- 设计网事封底根据用户体验要素五个层次推荐的书单
- linux命令
- windows中静态库lib和动态dll的区别及使用方法
- 断点调试问题