解题思路:f[i][j]表示i堆,余数为j 的糖果最大数量
注意事项:初始化f最大负值
参考代码:
#include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N = 1e2 + 10; int a[N], k, n,f[N][N]; int main() { cin >> n >> k; memset(f, -0x3f, sizeof f); f[0][0] = 0; for(int i = 1; i <= n; i ++) cin >> a[i]; 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][(j + k - a[i] % k)%k] + a[i] ); cout << f[n][0]; return 0; }
0.0分
1 人评分
输出九九乘法表 (C语言代码)浏览:1627 |
C二级辅导-阶乘数列 (C语言代码)浏览:878 |
C语言程序设计教程(第三版)课后习题9.3 (C++代码)浏览:692 |
IP判断 (C++代码)浏览:720 |
点我有惊喜!你懂得!浏览:2106 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:754 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:477 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:483 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:627 |