codevs2189数字三角形(%100)

时间:2023-03-08 21:49:44

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

%100的话就加一维状态。把最优性改为可行性(存在性)。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,a[][];
bool d[][][];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
scanf("%d",&a[i][j]);
int tp=n%;
for(int i=;i<=n;i++)d[tp][i][a[n][i]%]=;
for(int i=n-;i;i--)
{
memset(d[i%],,sizeof d[i%]);
for(int j=;j<=i;j++)
for(int k=;k<;k++)//第i+1行的k
d[i%][j][(k+a[i][j])%]=d[(i+)%][j][k]|d[(i+)%][j+][k];
}
for(int k=;k>=;k--)
if(d[][][k])
{
printf("%d",k);return ;
}
}

相关文章