1047. 糖果
害害害 还是不行啊!!!
题解
只有f[0][0]是有意义的,f[0][1] f[0][2]都没有意义 因为没有选物品的时候 不可能还有大于0的余数,
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100+10;
int n,k;
int a[N];
int f[N][N];
int get_mod(int a,int b)
{
return (a % b + b) % b;
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=0;i<N;i++)
for(int j=0;j<N;j++) f[i][j] = -0x3f3f3f3f;
f[0][0] = 0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=k;j++)
{
f[i][j] = max(f[i-1][j],f[i-1][get_mod(j - a[i],k)] + a[i]);
}
}
printf("%d",f[n][0]);
}