hdu 2571 dp

来源:互联网 发布:数据转换 编辑:程序博客网 时间:2024/04/28 17:46

2014/9/12



水题的忧伤



#include<stdio.h> int s[25][1005];int max(int x,int y){    return x>y?x:y;}int maxx(int x,int y,int z){    if(x<y)x=y;    return x>z?x:z;}int main(){    int n ,m , t;    while(~scanf("%dt",&t))    {        while(t--)        {            scanf("%d%d",&n,&m);            for(int i = 1;i <= n; i++)            for(int j = 1;j <= m; j++)scanf("%d",&s[i][j]);                        for(int i = 2;i <= n; i++)            s[i][1]+=s[i-1][1];                        for(int i = 2;i <= m; i++)            {                int temp = -1000000;                for(int j = 1;j < i; j++)                {                    if(i%j == 0)                    {                        if(temp <s[1][j])temp = s[1][j];                    }                }                s[1][i]+=max(s[1][i-1],temp);            }                        for(int i = 2;i <= n; i++)            for(int j = 2;j <= m; j++)            {                int temp = -1000000;                for(int k = 1;k < j; k++)                {                    if(j%k == 0)                    {                        if(temp <s[i][j])temp = s[i][k];                    }                }                                s[i][j]+=maxx(temp,s[i][j-1],s[i-1][j]);                            }                                    printf("%d\n",s[n][m]);                                            }    }                        return 0;}



0 0
原创粉丝点击