AcWing 1047. 糖果
由于在維護(hù)世界和平的事務(wù)中做出巨大貢獻(xiàn),Dzx被贈(zèng)予糖果公司2010年5月23日當(dāng)天無(wú)限量糖果免費(fèi)優(yōu)惠券。
在這一天,Dzx可以從糖果公司的 N 件產(chǎn)品中任意選擇若干件帶回家享用。
糖果公司的 N 件產(chǎn)品每件都包含數(shù)量不同的糖果。
Dzx希望他選擇的產(chǎn)品包含的糖果總數(shù)是 K 的整數(shù)倍,這樣他才能平均地將糖果分給幫助他維護(hù)世界和平的伙伴們。
當(dāng)然,在滿足這一條件的基礎(chǔ)上,糖果總數(shù)越多越好。
Dzx最多能帶走多少糖果呢?
注意:Dzx只能將糖果公司的產(chǎn)品整件帶走。
輸入格式
第一行包含兩個(gè)整數(shù) N 和 K。
以下 N 行每行 1 個(gè)整數(shù),表示糖果公司該件產(chǎn)品中包含的糖果數(shù)目,不超過(guò) 1000000。
輸出格式
符合要求的最多能達(dá)到的糖果總數(shù),如果不能達(dá)到 K 的倍數(shù)這一要求,輸出 0。
數(shù)據(jù)范圍
1≤N≤100,
1≤K≤100,
輸入樣例:
5 7
1
2
3
4
5
輸出樣例:
14
樣例解釋
Dzx的選擇是2+3+4+5=14,這樣糖果總數(shù)是7的倍數(shù),并且是總數(shù)最多的選擇。
代碼如下:
#include <iostream> #include <cstring> using namespace std; const int N = 110; int f[N][N]; int main() {int n,k;cin>>n>>k;memset(f,-0x3f,sizeof(f));f[0][0] = 0;for (int i = 1;i<=n;i++){int x;cin>>x;for (int j = 0;j<k;j++){f[i][j] = max(f[i-1][j],f[i-1][((j-x)%k+k)%k]+x);}}cout<<f[n][0]<<endl;return 0; }總結(jié)
以上是生活随笔為你收集整理的AcWing 1047. 糖果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手机如何更换系统
- 下一篇: AcWing 1234. 倍数问题