codevs2189 数字三角形W dp

来源:互联网 发布:查看远程端口是否打开 编辑:程序博客网 时间:2024/04/29 04:41

由于mod值不好判断大小,

可以直接枚举每一层到每个值的情况。

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define maxn 30int n;int ans=-1;bool possible[maxn][maxn][100];// 第i行 第j个 的 可能的%100的数值int main(){    memset(possible,false,sizeof(possible));    scanf("%d",&n);    for (int i=1;i<=n;i++)        for (int j=1;j<=i;j++)       {           int num;           scanf("%d",&num);           if(i>1)           {               for(int k=j-1;k<=j;k++)               {                   for(int m=0;m<=99;m++)                   {                       if(possible[i-1][k][m])                       {                           possible[i][j][(m+num)%100]=1;                       }                   }               }           }           else            possible[1][1][num%100]=1;       }       for(int i=1;i<=n;i++)       {           for(int j=0;j<=99;j++)           {               if(possible[n][i][j]&& j>ans)               {                   ans=j;               }           }       }       printf("%d",ans);    return 0;}

0 0
原创粉丝点击