uva12563 Jin Ge Jin Qu

2024-01-11 06:38
文章标签 ge qu jin uva12563

本文主要是介绍uva12563 Jin Ge Jin Qu,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;const int maxx = 180 * 55;
int t[55];//题目所给的歌的每个时长struct Node{int num, time;//歌的数量和时长
}dp[maxx];int main()
{int l;int n, len, sum = 0;//len控制时长,sum为了判断所给的歌的总时长int max_time;//为了判断所给len时长与sum大小int cnt = 1;scanf("%d", &l);while(l--){scanf("%d%d", &n, &len);memset(dp, 0, sizeof(dp));memset(t, 0, sizeof(t));for(int i = 1; i <= n; i++) {scanf("%d", &t[i]); sum += t[i];}max_time = min(sum, len - 1);//最多也是时长限制-1for(int i = 1; i <= n; i++){for(int j = max_time; j >= t[i]; j--){Node s;    //这里用Node  其实就是降维度的一个写法,从max_time to t[i]这种写法可以降维度其实和最简单的01背包相同s.num = dp[j-t[i]].num + 1;//这里一定记得搞清楚是”前“i件物品(歌)的总和,自己不懂可以推一下s.time = dp[j-t[i]].time + t[i];if(dp[j].num < s.num){//这个题歌的数量优先 dp[j]表示当前容量下的个数,s.num表示前i首歌的总个数dp[j].num = s.num;dp[j].time = s.time;}else if(dp[j].num == s.num && dp[j].time < s.time){//相同个数的歌需要保证最长时间dp[j].num = s.num;dp[j].time = s.time;}}}cout <<"Case " << cnt++ << ": " << dp[max_time].num + 1 << " " << dp[max_time].time + 678 << endl << max_time;//这里+1的原意是结构体初始化为0//其实博主刚开始很诧异为什m最终最多的个数会更新到max_time上,这是由于第一个if,自己不懂过程的一定自己在纸上推一下,懂过程以后代码就显得简单了}return 0;
}

这篇关于uva12563 Jin Ge Jin Qu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/593471

相关文章

org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.UnsupportedClassVersionError: Qu

既起到了一批新机器,安装了不少服务后,运行Sqoop,发现报错。 2019-05-24 10:46:40,798 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.UnsupportedClassVersionError: QueryResult : Unsupported major

UVA 12563 Jin Ge Jin Qu hao(DP)

题目链接:http://uva.onlinejudge.org/external/125/12563.pdf 思路:DP,用01背包的思路,每次记录下每个时间的最大歌曲数,最后找答案先满足歌曲数最大,在满足时间最大 #include <cstdio>#include <cstring>#include <algorithm>using namespace std;cons

golang $or $in $ge $gte 查询使用

1. 范围查询:类似sql: between and ... ( 30<x<40 )举例:filter := bson.D{{"cid", cid}, {"height", bson.M{"$gte": startheight, "$lt": endheight}}}2.包含查询:类似sql: where id in(.........) 举例:countFilter := b

世界上最大的联合体GE

GE,general electronic,通用电气,关于它的传奇故事我们多多少少知道一点,至少知道它是伟大的发明家爱迪生创立的。现如今,GE是一个巨大的联合体,而且虽然叫做通用电气,但业务好像大多跟电气扯不上什么关系。至2007年底,它有6大部门,每个部门都是其对应领域中的佼佼者,包括全球基建架构部门Global Infrastructure,GE金融GE finance(企业),G

android JIN 第一步 生成java转换成class然后再转化成.h文件

经过一番查找,可算搞定了java转成c的.h头文件的这第一步。 方法如下 第一步:创建 native方法的java类。 方法 m1和m2分别是调用native。 package com.demo.study;public class JNITest {public native String m1();public native String m2();} 第二步:将java文件

Jin Ge Jin Qu hao UVA - 12563 (0-1背包变形)

点击打开链接 题目大意:某人在KTV唱歌,他一共剩余t秒的时间,例如:在还有15秒时再唱一首2分钟的歌,则实际上是多唱了105秒。他一定会在最后唱《Jin Ge Jin Qu》时长678秒,当然是在还有剩余时间的时候开始唱的。 在剩余的t秒里,他有n首自己喜欢的歌要唱,给出n首歌的时长。问要使得唱的曲目尽量的多,且多唱的时间尽量的多是多少;具体题意看链接或紫书。 输出唱的曲目数和唱的时间数。

Tony Qu的《WPF揭秘》情节

Tony Qu的《WPF揭秘》情节 推荐阅读: 1.众星捧月——ASP.NET之父等力荐的一本书 2.WPF圣经——《WPF揭秘》 3.王洪超:WPF催熟整个软件生态链 能够有机会翻译本书这样的名著,我们都感到非常荣幸。经过4个月的辛苦努力,本书的中文译稿终于交到了出版社中,我们也总算可以松一口气了! 不得不承认,翻译是非常辛苦的一件工作。首先自己必须要对原文有通透的理解

Wrapper中的QueryWrapper常用ge,gt,lt,le具体含义

英文缩写 英文全拼 含义 EQ equal 等于 NE not equal 不等于 GT granter than 大于 LT less than 小于 GE granter than or equal 大于等于 LE less than or equal 小于等于

判断a是否大于b operator.gt(a, b) 判断a是否大于等于b operator.ge(a, b)

【小白从小学Python、C、Java】 【计算机等考+500强证书+考研】 【Python-数据分析】 判断a是否大于b operator.gt(a, b) 判断a是否大于等于b operator.ge(a, b) [太阳]选择题 请问执行以下程序的结果是: import operator print("【执行】2>2") print(2>2) print("【执行】operator.gt(2

Jin(CMake方式)

照着官方看的,脑子笨,愣是看了一下午。今天给大家说说怎么用CMake调用Jin代码调用c,顺便自己屡屡思路。过程及其简单,及其简单。 一.创建新工程 打开你的studio然后右键,创建一个jni的文件夹。 效果图应该是这样的: 第二步. 打开你刚才创建的jni文件夹,然后创建CMakeLists.txt文件 效果图: 创建完后: #版本cmake_minimum_re