一 原题

Raucous Rockers

You just inherited the rights to N (1 <= N <= 20) previously unreleased songs recorded by the popular group Raucous Rockers. You plan to release a set of M (1 <= M <= 20) compact disks with a selection of these songs. Each disk can hold a maximum of T (1 <= T <= 20) minutes of music, and a song can not overlap from one disk to another.

Since you are a classical music fan and have no way to judge the artistic merits of these songs, you decide on the following criteria for making the selection:

  • The songs on the set of disks must appear in the order of the dates that they were written.
  • The total number of songs included will be maximized.

PROGRAM NAME: rockers

INPUT FORMAT

Line 1: Three integers: N, T, and M.
Line 2: N integers that are the lengths of the songs ordered by the date they were written.

SAMPLE INPUT (file rockers.in)

4 5 2
4 3 4 2

OUTPUT FORMAT

A single line with an integer that is the number of songs that will fit on M disks.

SAMPLE OUTPUT (file rockers.out)

3

二 分析

数据范围贼小,直接dfs枚举

三 代码

运行结果:
USER: Qi Shen [maxkibb3]
TASK: rockers
LANG: C++Compiling...
Compile: OKExecuting...Test 1: TEST OK [0.000 secs, 4184 KB]Test 2: TEST OK [0.000 secs, 4184 KB]Test 3: TEST OK [0.000 secs, 4184 KB]Test 4: TEST OK [0.000 secs, 4184 KB]Test 5: TEST OK [0.000 secs, 4184 KB]Test 6: TEST OK [0.000 secs, 4184 KB]Test 7: TEST OK [0.000 secs, 4184 KB]Test 8: TEST OK [0.097 secs, 4184 KB]Test 9: TEST OK [0.011 secs, 4184 KB]Test 10: TEST OK [0.000 secs, 4184 KB]Test 11: TEST OK [0.032 secs, 4184 KB]Test 12: TEST OK [0.205 secs, 4184 KB]All tests OK.

Your program ('rockers') produced all correct answers! This is your submission #2 for this problem. Congratulations!

AC代码:
/*
ID:maxkibb3
LANG:C++
PROB:rockers
*/#include<cstdio>int n, t, m;
int songs[25];
int ans;void dfs(int s_id, int d_id, int left_size, int num) {if(d_id == m || s_id == n) {if(num > ans) ans = num;return;}if(ans == n) return;dfs(s_id + 1, d_id, left_size, num);if(left_size >= songs[s_id]) dfs(s_id + 1, d_id, left_size - songs[s_id], num + 1);if(songs[s_id] <= t && d_id < m - 1) dfs(s_id + 1, d_id + 1, t - songs[s_id], num + 1);
}int main() {freopen("rockers.in", "r", stdin);freopen("rockers.out", "w", stdout);scanf("%d%d%d", &n, &t, &m);for(int i = 0; i < n; i++) scanf("%d", &songs[i]);dfs(0, 0, t, 0);printf("%d\n", ans);
}

usaco3.4.3 Raucous Rockers相关推荐

  1. 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解

    [USACO题库]3.4.4 Raucous Rockers"破锣摇滚"乐队  题解 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...

  2. “破锣摇滚”乐队 Raucous Rockers——动态规划

    "破锣摇滚"乐队 Raucous Rockers 题目来源 洛谷P2736 题目描述 你刚刚继承了流行的"破锣摇滚"乐队录制的尚未发表的N(1 <= N ...

  3. usaco Raucous Rockers(dp)

    dp[i][j]表示到了第i张CD且第i张CD用了j分钟可以装的最多歌曲. /* ID:jinbo wu LANG:C++ TASK: rockers */ #include<bits/stdc ...

  4. USACO 3.4 Raucous Rockers (rockers)

    /* Main idea: 一道动态规划题,但观察数据规模,穷举就行了. 穷举每首歌是否选取所有的组合可能(2^20种),算出每种情况所有光盘上一共能存的歌曲数目,保留最大值即可. 对于穷举每首歌是否 ...

  5. UVA 473——Raucous Rockers

    题意:给定n个数,放到m个容器里,每个容器的容量是t(n个数的累加和不超过t),在不打乱放的顺序的情况下问最多能放多少个数? 思路:多维dp,f[i][j[k]表示前i个数放到第j个容器放k个的最大数 ...

  6. 动态规划算法的优化技巧

    动态规划是信息学竞赛中一种常用的程序设计方法,本文着重讨论了运用动态规划思想解题时时间效率的优化.全文分为四个部分,首先讨论了动态规划时间效率优化的可行性和必要性,接着给出了动态规划时间复杂度的决定因 ...

  7. usaco题思考记录

    1. 修理牛棚 Barn Repair 思路:反向,枚举所有间隔,从大到小排序,依次+板子不填它,直到板子数够了为止,拿总长去减::: 结论:逆向思维. 2.丢失的牛 思路:BFS::: 结论:有后效 ...

  8. 动态规划常见类型总结

    本文针对动态规划的常见类型进行总结.虽说总结的是动态规划,但顺便把递推也放了进来.严格来说,递推不属于动态规划问题,因为动态规划不仅有递推过程,还要有决策(即取最优),但广义的动态规划是可以包含递推的 ...

  9. 【USACO题库】 动态规划 汇总(普及-/普及)

    数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...

  10. 信息学奥赛一本通 1345:【例4-6】香甜的黄油 | 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter

    [题目链接] ybt 1345:[例4-6]香甜的黄油 洛谷 P1828 [USACO3.2]香甜的黄油 Sweet Butter [题目考点] 1. 图论 最短路径 [解题思路] 将题目叙述转为图论 ...

最新文章

  1. 安卓完全退出程序的六种方法(欢迎新手学习,大手指导)
  2. 均值滤波器3*3模板_均值滤波器
  3. 深入理解TCP/IP协议-TCP建立与终止连接
  4. javascript日期格式化 转换
  5. python处理xlsx[联合openpyxl与pandas]
  6. MySQL慢查询分析方法
  7. MySQL基础知识思维导图大纲
  8. R中输出常见位图和矢量图格式总结
  9. 扩展spring之ext-spring-cache
  10. C#使用Microsoft.Office.Interop.Word操作word书签位置插入Wingdings 2复选框
  11. 自然语言处理入门 第一章 新手上路
  12. Chrome离线安装CRX插件方法
  13. Excel入门(一)
  14. 2、异常值(outliers)检测:业务法、Z-score、3σ准则、箱线图
  15. Hive集成Tez让大象飞起来
  16. 浅谈Linux内存管理那些事儿
  17. word论文删除封面或前几页的页眉或横线
  18. 西部数据硬盘序列号查询网站
  19. 每周一品 · 永磁电机中的磁性材料
  20. 2022-2028年中国工业机器人行业产销需求预测与转型升级分析报告

热门文章

  1. (一)抖音快手短视频去水印原理分析
  2. Web前端开发之CSS学习笔记5—溢出、浮动、层叠
  3. 笔试占比近40%,中国人民大学高瓴人工智能学院2022年夏令营来袭
  4. java的学习内容,附高频面试题合集
  5. 嵌入式单片机STM32原理及应用
  6. 论嵌入式单片机软件架构
  7. C语言入门——取余运算
  8. 计算机查找的快捷键是,电脑快捷键快速查找
  9. jmeter接口自动化
  10. html怎么将坐标轴变成百分比,Excel中进行设置双坐标及次坐标轴显示百分比的方法...