hdu 2571 命运(dp)
2016-01-21 12:59
381 查看
[align=left]Problem Description[/align]
穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑! 可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧! 命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
View Code
穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑! 可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧! 命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<stdlib.h> #include<algorithm> using namespace std; #define inf 105 int n,m; int mp[26][1006]; int dp[26][1006]; int main() { int t; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ scanf("%d",&mp[i][j]); } } for(int i=0;i<m;i++){ dp[0][i]=-inf; } for(int i=0;i<n;i++){ dp[i][0]=-inf; } dp[0][1]=dp[1][0]=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ dp[i][j]=max(dp[i-1][j]+mp[i][j],dp[i][j-1]+mp[i][j]); for(int k=2;k<=m;k++){ if(j%k==0){ dp[i][j]=max(dp[i][j],dp[i][j/k]+mp[i][j]); } } } } printf("%d\n",dp [m]); } return 0; }
View Code
相关文章推荐
- javascript函数的声明,及返回值
- uva 10994 - Simple Addition
- BZOJ 1491: [NOI2007]社交网络( floyd )
- 欢迎使用CSDN-markdown编辑器
- Android系统架构
- linux 批量删除 svn文件
- 【常用工具类】SharedPreferences封装类SPUtils
- oracle自动添加数据文件
- SQLServer2008 突然用不了搜索文本了,就是Ctrl+F这个功能
- 清华梦的粉碎—写给清华大学的退学申请(转自王垠Blog)
- jenkins+git+android studio自动化构建(持续集成)
- 自定义Cell的Button无法点击
- Spark和Hadoop作业之间的区别
- OPENCV常用小代码
- 计数排序Counting sort
- 帝国cms循环列出所有子栏目名,和当前子栏目下的文章列表和所有栏目信息数
- 基于Grunt的版本号构建系统新手教程
- nginx
- java io基础
- EventBus代替Intent将复杂对象传递给下一个即将启动的Activity