走方格改进版dp
2014-03-26 11:46
113 查看
题目:
H - 命运
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit Status
Description
穿过幽谷意味着离大魔王lemon已经无限接近了!
可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑!
可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧!
命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
View Code
H - 命运
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit Status
Description
穿过幽谷意味着离大魔王lemon已经无限接近了!
可谁能想到,yifenfei在斩杀了一些虾兵蟹将后,却再次面临命运大迷宫的考验,这是魔王lemon设下的又一个机关。要知道,不论何人,若在迷宫中被困1小时以上,则必死无疑!
可怜的yifenfei为了去救MM,义无返顾地跳进了迷宫。让我们一起帮帮执着的他吧!
命运大迷宫可以看成是一个两维的方格阵列,如下图所示:
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; int num[1002][501]; int a[1002][1002]; int main() { num[1][0]=0; num[2][0]=1; for(int i=3;i<=1000;i++) { int k=0; for(int j=1;j<=i/2;j++) { if(i%j==0) num[i][k++]=j; } } int t; int n,m; //freopen("aa.txt","r",stdin); 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",&a[i][j]); for(int i=2;i<=m;i++) { int x=a[1][i-1]; int k=0; while(num[i][k]!=0) { if(x<a[1][num[i][k]]) x=a[1][num[i][k]]; k++; } a[1][i]+=x; } for(int i=2;i<=n;i++) { for(int j=1;j<=m;j++) { if(j==1) a[i][j]+=a[i-1][j]; else { int x=max(a[i][j-1],a[i-1][j]); int k=0; while(num[j][k]!=0) { if(x<a[i][num[j][k]]) x=a[i][num[j][k]]; k++; } a[i][j]+=x; } } } printf("%d\n",a [m]); } return 0; }
View Code
相关文章推荐
- HDU 1565 方格取数(1) (状态压缩 DP)
- HDU 1565 方格取数(1)(状态压缩DP)
- 【DP】洛谷 P1004 方格取数
- HDU 1565 方格取数(1) (状压dp)
- 机器人走方格(DP/递归)
- hdu 1565 方格取数(1)(状态压缩dp)
- hdu 1565 方格取数(1)(状态压缩DP)
- ZZULIOJ-1894-985的方格难题(BFS&规律&DP)
- 命运 (DP方格取数)
- 状态压缩DP——hdu 1565 方格取数1
- AYOJ-21523:方格取数--21491:传纸条 --双边dp 最新更新:剪枝!!
- HDU 1565 方格取数(1) (状态dp)
- hdu 1565 方格取数(1)(DP 状态压缩)
- hdu 1565 方格取数(1)(状态压缩dp)
- hdu1565 方格取数 最大流(二分图极大点权独立集) 或状态压缩dp
- HDU 1565 方格取数(1) (状态压缩DP入门题 2)(待更新)
- codevs 1043 方格取数(棋盘型DP)
- zzulioj 1894: 985的方格难题 [dp]
- 方格取数_纪中_dp
- hdu 1565 方格取数(1)(DP 状态压缩)