UVA 12563 Jin Ge Jin Qu hao
来源:互联网 发布:期货投资分析软件 编辑:程序博客网 时间:2024/05/24 00:47
Jin Ge Jin Qu hao
UVA - 12563题意: 给你 n 个歌曲 和 你的唱歌的时间。 接下来是每一首歌 的时间长度 , 但是在
ktv 唱歌有个bug 就是在你定的时间接受之前你再点一首歌, 假设你定了 100 秒
在95秒是你选择唱了一首 劲歌金曲 那么 就相当于你多唱了 678-5 秒 你的任务是在唱的歌曲数目尽量多的情况下 要求唱 的时间尽量的长。
思路:要求 在唱歌数目尽量多的情况下 要求时间尽量的长,, 那么我们考虑 在 ,
m-1 秒内 我们能唱的最大的歌曲数目 , 当然是0 1 背包的思路, 考虑 能唱的最大的时间长度。 那么就是在 num相等的情况下,要 保证 时间time 尽量的的d大 ,那么
我们可以定义一个结构体背包, 然后定义 结构体的优先级 ,就可以了 。
代码:
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;const int N =180*55;struct node{int num;int time;bool operator < (const node &a ) const {if(a.num==num) return a.time>time;else return a.num>num;}}dp[N];int n,m;int t[55];int main(){int cas;cin>>cas;for(int kk=1;kk<=cas;kk++){cin>>n>>m;memset(dp,0,sizeof(dp));int sum=0;for(int i=1;i<=n;i++){cin>>t[i];sum+=t[i];}int maxt=min(sum,m-1);for(int i=1;i<=n;i++){for(int j=maxt;j>=t[i];j--){node tmp;tmp.num=dp[j-t[i]].num+1;tmp.time=dp[j-t[i]].time+t[i];if(dp[j]<tmp){dp[j]=tmp;}}}printf("Case %d: ",kk);printf("%d %d\n",dp[maxt].num+1,dp[maxt].time+678);}return 0;}
阅读全文
0 0
- uva 12563 - Jin Ge Jin Qu hao
- UVa 12563 Jin Ge Jin Qu hao
- UVa - 12563 - Jin Ge Jin Qu hao
- UVA - 12563 Jin Ge Jin Qu hao
- UVA 12563:jin ge jin qu hao
- uva 12563Jin Ge Jin Qu hao
- uva 12563 Jin Ge Jin Qu hao
- UVA 12563 Jin Ge Jin Qu hao
- UVA 12563 Jin Ge Jin Qu hao
- UVA 12563 Jin Ge Jin Qu hao
- UVa 12563_Jin Ge Jin Qu hao
- Jin Ge Jin Qu hao UVA
- Jin Ge Jin Qu hao UVA
- Jin Ge Jin Qu hao UVA
- Jin Ge Jin Qu hao UVA
- Jin Ge Jin Qu hao - UVa 12563 dp背包
- UVA 12563 Jin Ge Jin Qu hao(DP)
- UVA - 12563 Jin Ge Jin Qu hao (01背包)
- 丛林战争项目三之开启异步处理客户端连接请求
- windows命令行启动mysql服务
- eclipse run configuration arguments
- 【Leetcode】Merge Intervals
- 树状数组+启发式合并
- UVA 12563 Jin Ge Jin Qu hao
- python 导入模块
- 1541.加1乘2平方
- vue学习过程遇到的一些问题集合
- 线性回归、逻辑回归、各种回归的比较
- git push 遇到missing change id的问题
- Android开发——集成友盟社会化分享遇到的坑(一)
- jquerysession.js文件
- Python程序路径,传入参数