1. 程式人生 > >codevs2189數字三角形w——最優性轉化

codevs2189數字三角形w——最優性轉化

ble ++ code mem 可行性 AI class ace ems

題目:http://codevs.cn/problem/2189/

通過增加一維,將最優性轉化為可行性。

代碼如下:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[30][30];
bool f[30][30][105];
int main()
{
//    memset(f,-2,sizeof f);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
        {
            scanf(
"%d",&a[i][j]); if(i==n) f[i][j][a[i][j]%100]=1; } for(int i=n-1;i>=1;i--) for(int j=1;j<=n;j++) for(int k=99;k>0;k--) { f[i][j][k]=max(f[i+1][j][(k-a[i][j]+100)%100], f[i+1][j+1
][(k-a[i][j]+100)%100]); } for(int i=99;i>=0;i--) if(f[1][1][i]) { printf("%d",i); return 0; } }

codevs2189數字三角形w——最優性轉化