HDUOJ----2571(命运)(简单动态规划)
2014-05-10 09:48
162 查看
命运
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 8600 Accepted Submission(s): 3032[align=left]Problem Description[/align]
穿过幽谷意味着离大魔王lemon已经无限接近了! 可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑! 可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧! 命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
#include<stdio.h> #include<string.h> #include<stdlib.h> #define maxn -0x3f3f3f3f int dp[21][1001],sum[21][1001]; int max(int a ,int b){ if(a>b) return a; return b; } int main() { int c,n,m,k,i,j; scanf("%d",&c); while(c--){ scanf("%d%d",&n,&m); for(i=1; i<=n;i++){ for(j=1;j<=m;j++){ scanf("%d",&dp[i][j]); } } // memset(sum,0,sizeof(sum)); //对边缘进行必要地初始化.... for(i=0;i<=n;i++) sum[i][0]=maxn; for(i=1;i<=m;i++) sum[0][i]=maxn; sum[1][0]=sum[0][1]=0; for( i=1 ; i<=n ; i++ ){ for( j=1 ; j<=m ; j++ ){ //选择是向下还是向右进行行走....... sum[i][j]= max( sum[i-1][j],sum[i][j-1] )+ dp[i][j]; //对于向右行走,该怎么走....... int ks=2; while(j>=ks){ if(j%ks==0) //比较它们的倍数 sum[i][j] = max( sum[i][j] , sum[i][j/ks]+dp[i][j] ) ; ks++; //所有的倍数..... } } } printf("%d\n",sum [m]); } return 0; }
View Code
相关文章推荐
- 命运(HDU 2571 简单动态规划)
- HDU 2571 命运 (简单DP)
- HDU 2571 命运(简单DP)
- [HDU 2571 命运]简单DP
- Hdu 2571 命运(简单DP)
- HDU 2571 命运 (简单DP)
- hdu 2571 命运(动态规划)
- 杭电2571-命运 动态规划
- HDU 2571 命运(简单DP)
- hdoj problem 2571命运 (动态规划问题)
- HDU 2571 命运 (动态规划)
- HDU 2571 命运 动态规划
- HDOJ 2571 命运(动态规划)
- HDU 2571 命运 【简单动态规划】
- 【hdu - 2571 命运 (动态规划)】ACM程序设计期末考试081230
- HDU 2571 命运(简单经典DP)
- hdu 2571 命运 简单DP
- HDU - 2571 命运(简单DP)
- HDU 2571 命运 DP 动态规划
- HDOJ 题目2571 命运(动态规划)