糖果動態規劃

2021-09-13 01:30:02 字數 895 閱讀 9327

由於在維護世界和平的事務中做出巨大貢獻,蒜頭君被贈予糖果公司若干無限量糖果免費優惠券。蒜頭君可以從糖果公司的 nn 件產品中任意選擇若干件帶回家享用。糖果公司的 nn 件產品每件都包含數量不同的糖果。蒜頭君希望他選擇的產品包含的糖果總數是 kk 的整數倍,這樣他才能平均地將糖果分給幫助他維護世界和平的夥伴們。當然,在滿足這一條件的基礎上,糖果總數越多越好。蒜頭君最多能帶走多少糖果呢?

注意:蒜頭君只能將糖果公司的產品整件帶走。

輸入格式

第一行包含兩個整數 n(1 \le n \le 100)n(1≤n≤100) 和 k(1 \le k \le 100)k(1≤k≤100);

以下 nn 行每行 11 個整數,表示糖果公司該件產品中包含的糖果數目,不超過 10000001000000。

輸出格式

符合要求的最多能達到的糖果總數,如果不能達到 kk 的倍數這一要求,輸出 00。

樣例解釋

蒜頭君的選擇是 2+3+4+5=142+3+4+5=14,這樣糖果總數是 77 的倍數,並且是總數最多的選擇。

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入複製

5 712

345

樣例輸出複製

14
#include #include#include#include#includeusing namespace std;

int n,k;

int dp[105][105],a[105];

//dp[i][j]表示前i個數餘數為j的最大值,題目所求是dp[n][0],前n個數,餘數為0的最大值

int main()

for(int i=1;i<=n;i++)

}cout

}

動態規劃 吃糖果

每天可以吃一塊或者兩塊糖果,給出n塊糖果,問可以有幾種吃法。根據題意,當吃到第n塊糖的時候,可以是吃1塊吃到第n塊,也可以吃2塊。所以當吃到第n塊的時候,他的方法數是吃n 1和n 2塊糖的方法數之和。因此。狀態 a n 是吃第n塊糖的時候的方法數。子問題 第n塊糖,最後是那種方法吃到的。有兩種。狀態...

動態規劃 吃糖果

描述 名名的媽媽從外地出差回來,帶了一盒好吃又精美的巧克力給名名 盒內共有 n 塊巧克力,20 n 0 媽媽告訴名名每天可以吃一塊或者兩塊巧克力。假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。例如 如果n 1,則名名第1天就吃掉它,共有1種方案 如果n 2,則名名可以第1天吃1塊,...

動態規劃練習 吃糖果

題目要求 一盒巧克力給名名 盒內共有 n 塊巧克力,20 n 0 名名每天可以吃一塊或者兩塊巧克力。假設名名每天都吃巧克力,問名名共有多少種不同的吃完巧克力的方案。例如 如果n 1,則名名第1天就吃掉它,共有1種方案 如果n 2,則名名可以第1天吃1塊,第2天吃1塊,也可以第1天吃2塊,共有2種方案...