如此水的01背包,居然让我WA了七次。

开始理解错题意了,弄反了主次关系。总曲目最多是大前提,其次才是歌曲总时间最长。

题意:

在KTV房间里还剩t秒的时间,可以从n首喜爱的歌里面选出若干首(每首歌只能唱一次且如果唱就必须唱完),然后剩下至少1秒的时间来唱那首长678秒的歌曲。

总曲目最多的前提下,尽量使歌曲总时间最长。

分析:

所给时间为t,在t-1秒内进行01背包,num[i]来记录剩余时间为 i 时能长的最多曲目,如果曲目相同还要记录最长时间。

 //#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std; const int maxn = ;
int a[], dp[maxn], num[maxn]; int main(void)
{
#ifdef LOCAL
freopen("12563in.txt", "r", stdin);
#endif int T;
scanf("%d", &T);
for(int kase = ; kase <= T; ++kase)
{
int n, t;
scanf("%d%d", &n, &t);
t--;
for(int i = ; i < n; ++i)
{
scanf("%d", &a[i]);
if(a[i] > ) a[i] = ;
}
memset(dp, , sizeof(dp));
memset(num, , sizeof(num));
for(int i = ; i < n; ++i)
for(int j = t; j >= a[i]; --j)
{
if(num[j] < num[j-a[i]] + )
{
num[j] = num[j-a[i]] + ;
dp[j] = dp[j-a[i]] + a[i];
}
else if(num[j] == num[j-a[i]] + )
{
dp[j] = max(dp[j], dp[j-a[i]] + a[i]);
}
}
printf("Case %d: %d %d\n", kase, num[t]+, dp[t]+);
} return ;
}

代码君

UVa 12563 (01背包) Jin Ge Jin Qu hao的更多相关文章

  1. Jin Ge Jin Qu hao UVA - 12563 01背包

    题目:题目链接 思路:由于t最大值其实只有180 * 50 + 678,可以直接当成01背包来做,需要考虑的量有两个,时间和歌曲数,其中歌曲优先级大于时间,于是我们将歌曲数作为背包收益,用时间作为背包 ...

  2. 紫书 例题 9-5 UVa 12563 ( 01背包变形)

    总的来说就是价值为1,时间因物品而变,同时注意要刚好取到的01背包 (1)时间方面.按照题意,每首歌的时间最多为t + w - 1,这里要注意. 同时记得最后要加入时间为678的一首歌曲 (2)这里因 ...

  3. UVA - 12563 Jin Ge Jin Qu hao (01背包)

    InputThe first line contains the number of test cases T (T ≤ 100). Each test case begins with two po ...

  4. uVa 12563 Jin Ge Jin Qu

    分析可知,虽然t<109,但是总曲目时间大于t,实际上t不会超过180*n+678.此问题涉及到两个目标信息,首先要求曲目数量最多,在此基础上要求所唱的时间尽量长.可以定义 状态dp[i][j] ...

  5. UVA Jin Ge Jin Qu hao 12563

    Jin Ge Jin Qu hao (If you smiled when you see the title, this problem is for you ^_^) For those who ...

  6. 12563 - Jin Ge Jin Qu hao——[DP递推]

    (If you smiled when you see the title, this problem is for you ^_^) For those who don’t know KTV, se ...

  7. 12563 Jin Ge Jin Qu hao

    • Don’t sing a song more than once (including Jin Ge Jin Qu). • For each song of length t, either si ...

  8. 一道令人抓狂的零一背包变式 -- UVA 12563 Jin Ge Jin Qu hao

    题目链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...

  9. 【紫书】(UVa12563)Jin Ge Jin Qu hao

    继续战dp.不提. 题意分析 这题说白了就是一条01背包问题,因为对于给定的秒数你只要-1s(emmmmm)然后就能当01背包做了——那1s送给劲歌金曲(?).比较好玩的是这里面dp状态的保存——因为 ...

随机推荐

  1. ADT eclipse打开时出现Error: Error parsing C:\Users\admin*\.android\devices.xml

    Error: Error parsing C:\Users\admin*\.android\devices.xml  在ADT eclipse打开项目的时候出现此提示,但是又不影响使用. 原因:之前安 ...

  2. SQL Server数据库事务日志存储序列

    原文 原文:http://blog.csdn.net/tjvictor/article/details/5251351   如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job ...

  3. AsyncTask不能同时运行多个实例解决办法

    在项目中使用AsyncTask时,发现创建的多个实例无法同时运行,比如: AsyncTask t1 = new MyTask(); AsyncTask t2 = new MyTask(); t1.ex ...

  4. Linux命令zip和unzip

    问题描述:        使用Linux中命令zip和unzip 问题解决: 命令名: zip  功能说明:压缩文件. 语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][- ...

  5. UVALive 6533

    哈夫曼树  倒过来思考 ~ 最深的叶子 值为1  所以最深的先出队列 #include <iostream> #include <cstdio> #include <cs ...

  6. 15个实用的jQuery技术

    JQuery是目前最流行的JavaScript框架之一,可以显著的提高用户与网络应用的交互. 今天为大家介绍50有用的jQuery技术: 1.移动Box 2.滑动框和标题 3.数据的可视化:使用HTM ...

  7. 拼写sql语句随笔

    DECLARE @str NVARCHAR(1000)='SELECT * FROM dbo.V_MicroUserInfo ',@where VARCHAR(1000)=' where 1=1' D ...

  8. linux 查看局域网内ip

    $ sudo apt-get install nmap $ nmap -sP 192.168.1.1/24 windows 下直接arp -a就能看到.

  9. QSS的作用需要正确设置文件编码才能起作用

    QT这个库,无非使用OO对跨平台做了绝佳的封装,这其中的主要工作也就是比较繁琐而已,但并不多么了不起.唯独其中提供的QSS功能,让我感到十分神奇,做出来的效果实在很惊艳,而使用代码却又是如此简单,而且 ...

  10. Photoshop:制作方块背景

    1.填充背景色 2.滤镜->杂色->添加杂色 3.滤镜->像素化->马赛克 4.添加横线,明度-10 最终效果 附: 利用:查找边缘.最小值,还可以做这样的效果