标签:
5 7 1 2 3 4 5
14
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int N=105; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘;ch=getchar();} return x*f; } int n,k,a[N],f[N][N]; void dp(){ for(int j=1;j<k;j++) f[0][j]=-1e9; for(int i=1;i<=n;i++) for(int j=0;j<k;j++){ int tj=(j-a[i]%k+k)%k; f[i][j]=max(f[i-1][j],f[i-1][tj]+a[i]); } } int main(int argc, const char * argv[]) { n=read();k=read(); for(int i=1;i<=n;i++) a[i]=read(); dp(); cout<<f[n][0]; return 0; }
标签:
原文地址:http://www.cnblogs.com/candy99/p/5828055.html