题目链接:http://noi.openjudge.cn/ch0206/2989/

首先,数据很大,直接用背包会re。

这里增加的是对%k 的余数维度。f[i][j] 表示前 i 种糖果取到总颗数模 k 余数为 j 的最大颗数。

注意一定要先将 f[i-1][j] 转移到 f[i][j] ,再枚举余数dp,不然会有重叠。答案是 f[n][0];

#include <bits/stdc++.h>
using namespace std; int a[];
int d[];
int f[][]; /*
int main()
{
int n,k;
int sum = 0;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++) {
scanf("%d",&a[i]);
sum+=a[i];
} int t = sum/k;
sum = t*k;
for(int i=1;i<=n;i++) {
for(int j=sum;j>=0;j--) {
if(j>=a[i]) {
d[j] = max(d[j],d[j-a[i]]+a[i]);
}
}
}
bool flag = false;
for(;;) {
if(d[sum]%k==0) {
printf("%d\n",d[sum]);
flag = true;
break;
}
else sum = sum - k;
}
if(!flag)
puts("0"); return 0;
}
*/ int main()
{
int n,k;
scanf("%d%d",&n,&k); memset(f,,sizeof(f));
for(int i=; i<=n; i++)
scanf("%d",&a[i]);
for(int i=; i<=n; i++)
{
for(int q=; q<=k-; q++)
f[i][q]=f[i-][q];
for(int j=; j<=k-; j++)
if(f[i-][j]+a[i]>f[i][(f[i-][j]+a[i])%k])
f[i][(f[i-][j]+a[i])%k]=f[i-][j]+a[i];
}
printf("%d",f[n][]);
return ;
}

noi 2989 糖果的更多相关文章

  1. NOI 动态规划题集

    noi 1996 登山 noi 8780 拦截导弹 noi 4977 怪盗基德的滑翔翼 noi 6045 开餐馆 noi 2718 移动路线 noi 2728 摘花生 noi 2985 数字组合 no ...

  2. 2016.4.3 动态规划NOI专练 王老师讲课整理

    1.6049:买书 总时间限制:  1000ms 内存限制:  65536kB 描述 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元. 问小明有多少种买书方案?(每种书可购买 ...

  3. NOIWC前的交流题目汇总

    RT 2018.12.27 i207M:BZOJ 4695 最假女选手 以维护最大值为例,记录最大值和严格次大值和最大值的出现次数,然后取min的时候递归到小于最大值但大于次大值修改,这个就是最重要的 ...

  4. noi 1944 吃糖果

    题目链接:http://noi.openjudge.cn/ch0206/1944/ 根据第一天吃的个数递推,发现这个递推关系很像斐波那契数列. http://paste.ubuntu.com/2340 ...

  5. 【noi 2.6_2989】糖果(DP)

    题意:求取到总和为K的倍数的糖果的最大值. 解法:用模K的余数作为一个维度,f[i][j]表示在前i种糖果中取到总颗数模K余j的最大总颗数. 注意--f[i-1][j]要正常转移,而其他要之前的状态存 ...

  6. NOI.AC NOIP模拟赛 第一场 补记

    NOI.AC NOIP模拟赛 第一场 补记 candy 题目大意: 有两个超市,每个超市有\(n(n\le10^5)\)个糖,每个糖\(W\)元.每颗糖有一个愉悦度,其中,第一家商店中的第\(i\)颗 ...

  7. 【FINAL】NOI

    我就是复习一下..根本就不是什么题解...谁也看不懂的... NOI2007 社交网络         最短路 货币兑换         斜率优化动态规划 项链工厂         线段树 生成树计数 ...

  8. 原生js可爱糖果数字时间特效

    效果展示:http://hovertree.com/texiao/js/35/ 数字采用漂亮的糖果皮肤设计 效果图: 代码如下: <!DOCTYPE html> <html> ...

  9. UOJ #58 【WC2013】 糖果公园

    题目链接:糖果公园 听说这是一道树上莫队的入门题,于是我就去写了--顺便复习了一下莫队的各种姿势. 首先,我们要在树上使用莫队,那么就需要像序列一样给树分块.这个分块的过程就是王室联邦这道题(vfle ...

随机推荐

  1. bootstrap学习笔记之二

    学习表单时还是有些吃力的,主要感觉有些结构有些复杂,没有自己亲手去操作就感觉似懂非懂,所以还得自己亲手测一下. 现在开始按钮的学习. 可作为按钮使用的标签和元素有:  <a>.<bu ...

  2. linux笔记三-------根目录相关说明

    1. /bin   binary二进制文件,可执行程序文件          ls   su    pwd    cd          内部文件是一些指令信息 2. /sbin  super bin ...

  3. 2016HUAS暑假集训训练2 A - Is It A Tree?

    Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...

  4. array_reduce方法用回调函数迭代地将对数组的值进行操作

    在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>a ...

  5. jquery 取消绑定事件

    $(".TreeView1_0").unbind("mouseover"); $("#id").attr("onclick&quo ...

  6. PHP版本VC6与VC9、Thread Safe与None-Thread Safe等的区别

    PHP版本VC6与VC9.Thread Safe与None-Thread Safe等的区别 [摘要]PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,在PHP发 ...

  7. IOS第八天(7:UITableViewController新浪微博,cell 复用的简单写法优化和cell高度从模型中获取)

    *********** #import "HMViewController.h" #import "HMStatus.h" #import "HMSt ...

  8. windows 快捷键

    Windows 系统 f6  在同一个应用的不同窗口进行切换 ctrl-shift 拖动,创建文件快捷方式 shift 右键点击文件 可以出现复制路径的菜单 WIN键组合键 Windows Key + ...

  9. hibernate学习(4)——实体配置详解

    1.实体 编写规则 提供一个无参数 public访问控制符的构造器 提供一个标识属性,映射数据表主键字段,hibernate以id识别,必须有主键 所有属性提供public访问控制符的 set  ge ...

  10. Oracle中的rownum和rowid

    http://blog.csdn.net/mitedu/article/details/3584399  rownum http://blog.csdn.net/mitedu/article/deta ...