[luoguP2736] “破锣摇滚”乐队 Raucous Rockers(DP)
f[i][j]表示前i首歌放到前j个盘里最多能放多首
ntr[i][j]表示i~j中最多能放进一张盘中多少首歌
ntr数组可以贪心预处理出来。
#include <cstdio>
#include <iostream>
#include <algorithm>
#define N 21
#define max(x, y) ((x) > (y) ? (x) : (y)) int n, t, m;
int a[N], b[N], ntr[N][N], f[N][N];
//f[i][j]表示前i首歌放到前j个盘里最多能放多首
//ntr[i][j]表示i~j中最多能放进一张盘中多少首歌 inline int read()
{
int x = 0, f = 1;
char ch = getchar();
for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1;
for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';
return x * f;
} inline void init()
{
int i, j, k, sum, cnt;
for(i = 1; i <= n; i++)
for(j = i; j <= n; j++)
{
sum = cnt = 0;
for(k = i; k <= j; k++) b[k] = a[k];
std::sort(b + i, b + j + 1);
for(k = i; k <= j; k++)
if(sum + b[k] <= t)
{
cnt++;
sum += b[k];
}
ntr[i][j] = cnt;
}
} int main()
{
int i, j, k;
n = read();
t = read();
m = read();
for(i = 1; i <= n; i++) a[i] = read();
init();
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
for(k = 0; k < i; k++)
f[i][j] = max(f[i][j], f[k][j - 1] + ntr[k + 1][i]);
printf("%d\n", f[n][m]);
return 0;
}
[luoguP2736] “破锣摇滚”乐队 Raucous Rockers(DP)的更多相关文章
- 洛谷P2736 “破锣摇滚”乐队 Raucous Rockers
P2736 "破锣摇滚"乐队 Raucous Rockers 21通过 52提交 题目提供者该用户不存在 标签USACO 难度普及+/提高 提交 讨论 题解 最新讨论 暂时没有 ...
- P2736 “破锣摇滚”乐队 Raucous Rockers
题目描述 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= 20)张CD.每一张C ...
- Codevs 1444 “破锣摇滚”乐队
1444 “破锣摇滚”乐队 题目描述 Description 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M ...
- “破锣摇滚”乐队(codevs 1444)
题目描述 Description 你刚刚继承了流行的“破锣摇滚”乐队录制的尚未发表的N(1 <= N <= 20)首歌的版权.你打算从中精选一些歌曲,发行M(1 <= M <= ...
- USACO 3.4 Raucous Rockers
Raucous Rockers You just inherited the rights to N (1 <= N <= 20) previously unreleased songs ...
- 递推DP UVA 473 Raucous Rockers
题目传送门 题意:n首个按照给定顺序存在m张光盘里,每首歌有播放时间ti,并且只能完整的存在一张光盘里,问最多能存几首歌 分析:类似01背包和完全背包,每首歌可存可不存,存到下一张光盘的情况是当前存不 ...
- USACO Section 3.4: Raucous Rockers
简单的dfs题目 /* ID: yingzho1 LANG: C++ TASK: rockers */ #include <iostream> #include <fstream&g ...
- DP擎天
DP! 黄题: 洛谷P2101 命运石之门的选择 假装是DP(分治 + ST表) CF 982C Cut 'em all! 树形贪心 洛谷P1020 导弹拦截 单调队列水题 绿题: 洛谷P1594 护 ...
- DP小题集
P2736 "破锣摇滚"乐队 Raucous Rockers 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N <= 20)首歌的 ...
随机推荐
- Apache Kylin的架构特性
不多说,直接上干货! http://kylin.apache.org/cn/ 可扩展的超快OLAP引擎,提供标准SQL查询接口 支持单机或集群部署,为减少在Hadoop上百亿规模数据查询延迟而设计: ...
- Suricata的性能
不多说,直接上干货! 见官网 https://suricata.readthedocs.io/en/latest/performance/index.html Docs » 7. Performanc ...
- Jenkins视图使用--添加删除视图
job建立的特别多的时候,我们可能不太容易找到自己的某个job,这时,我们就可以在Jenkins中建立视图.job的视图类似于我们电脑上的文件夹.可以通过一些过滤规则,将已经建好的job过滤到视图中, ...
- Some Python Tricks
python 的包管理很不好用,理解费力,故偷懒,模块仍按文件布局,写一个合并脚本将各个模块合并输出到一个脚本文件,分别管理,合并输出,回避了加载模块的问题 f-format 仅在python 3.6 ...
- Docker 容器镜像操作
1.停止所有的container,这样才能够删除其中的images:docker stop $(docker ps -a -q)如果想要删除所有container的话再加一个指令: docker rm ...
- client系列、offset系列、scroll系列
一.client系列 clientWidth/clientHeight 是我们设置的宽和高加上内边距(没有边框) clientLeft/clientTop 就是我们设置的边框值 二.offset ...
- 关于php的问题
$polling_items = db_fetch_assoc("SELECT * FROM poller_item WHERE rrd_next_step<=0 ORDER by h ...
- Qt窗口-仅显示关闭按钮
环境: Qt5.3.1, mac os x 10.10.1 setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowH ...
- HYSBZ 1208 宠物收养所 (Splay树)
题意:一家宠物收养所负责处理领养者与遗弃宠物业务,有人来领宠物,则领一只最理想的.若没有宠物了,领养者们就得等到宠物来,宠物一来立刻送给其中一个等待者.如果有两个理想的选择,则选择那个值较小的.收养所 ...
- (转)SpringMVC学习(八)——SpringMVC中的异常处理器
http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...