用动态规划求解,设w[i][j]表示从i到j用一张光盘最多刻多少首歌,可用0-1背包求出;f[i][j]表示前j首歌用i个光盘最多刻多少首歌,状态转移方程:f[i][j] = max(f[i - 1][l] + w[l + 1][j]) (i - 1 <= l <= j - 1)。这道题和UVA 662-Fast Food非常相似。

/*
ID:zhaofuk1
PROG: rockers
LANG: C++
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int w[30][30], f[30][30], ut[30], tmp[30];
int n, t, m, ans, cnt = 0;int main()
{freopen("rockers.in", "r", stdin);freopen("rockers.out", "w", stdout);scanf("%d %d %d", &n, &t, &m);if(m > n) m = n;for(int i = 1; i <= n; i++)scanf("%d", &ut[i]);memset(f, 0, sizeof(f));memset(w, 0, sizeof(w));for(int i = 1; i <= n; i++){for(int j = i; j <= n; j++){memset(tmp, 0, sizeof(tmp));for(int k = i; k <= j; k++){for(int v = t; v >= ut[k]; v--){tmp[v] = max(tmp[v], tmp[v - ut[k]] + 1);}}w[i][j] = tmp[t];}}for(int j = 1; j <= n; j++) f[1][j] = w[1][j];for(int i = 2; i <= m; i++){for(int j = i; j <= n; j++){for(int k = i - 1; k < j; k++){f[i][j] = max(f[i][j], f[i - 1][k] + w[k + 1][j]);}}}printf("%d\n", f[m][n]);return 0;
}

usaco - Raucous Rockers相关推荐

  1. usaco Raucous Rockers(dp)

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

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

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

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

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

  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题库】 动态规划 汇总(普及-/普及)

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

  8. usaco题思考记录

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

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

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

  10. usaco Shaping Regions

    这就是usaco 前面的windows area的变形. /* ID:jinbo wu TASK:rect1 LANG:C++ */ #include<iostream> #include ...

最新文章

  1. ceph unfound object问题的解决
  2. 「SAP技术」SAP MM 事务代码ME17的用法
  3. 为treeview添加客户端事件
  4. 【星球知识卡片】模型压缩重要方向-动态模型,如何对其长期深入学习
  5. 在浏览器中进行深度学习:TensorFlow.js (一)基本概念
  6. 算法提高 拿糖果【埃氏筛 动态规划】
  7. 004_wireshark专题
  8. Oracle和SQL server的数据类型比较
  9. eclipse console 输出数据量大时不完整问题
  10. python做一个http接口测试框架
  11. Rust导出Python/Node.js可用的DLL库
  12. c语言 fft程序,FFT算法的使用说明与C语言版实现源码
  13. GandCrab4.0勒索病毒解密工具
  14. 根据ip地址定位城市信息
  15. 【Stream】java8新特性Stream流总结
  16. 建群网培PMP每日一练2020-08-13
  17. P、NP、NPC问题
  18. 未来智安XDR入选《CCSIP 2022中国网络安全产业全景图》
  19. 射频识别系统及WMS仓库管理系统功能介绍
  20. 程序设计思维月模拟题2-CSP201609-3 炉石传说

热门文章

  1. 微信公众号排版教程 | 你真的学会了排版么?
  2. 《从0到1》读书笔记第10章“打造帮派文化”第2记: 如何打造一个优秀创业团队
  3. VMware安装win7操作系统
  4. 计算题合集-管理经济学
  5. html form提交heard,德普前妻Amber Heard戛纳合辑
  6. 微信小程序抓包-夜神模拟器结合BurpSuite抓包(可用于现在最新版本微信)
  7. 微信小程序 转发功能实例讲解
  8. 无线射频收发芯片SI24R1技术相关问题解答
  9. 电脑连接SONY蓝牙耳机没有声音
  10. linux 图片批量裁处理,linux下使用Image Magick批量处理图片