【qduoj】【yzm10与大富翁的故事】(hdu百度之星)
题目:
Description
这款《大富翁》游戏曾经是我的启蒙桌游之一,印象最深的就是那一叠叠花花绿绿的钞票,还有和小伙伴从欢乐买地到撕逼掀桌的搞笑回忆~
当你的对手在一整条街上开满了旅馆(经过时要交过路费),每一次掷骰子都会心惊胆战,一不小心就会损失一个亿的感觉(╯▔皿▔)╯。
最近在逛桌游店的时候,我又忍不住上前搓了一把。
在购买地产、缴纳地税或交过路费时,往往需要支付一定的金额,我们需要用手中的钞票组合出恰好能支付金额的钱数,满足a[1]+a[2]+...+a[k]=M。
眼下我又来到了死亡一条街...看着小伙伴得意洋洋的样子,我心有不甘地拿出了钞票。
当然了支付时还是有一定技巧的,在选择面值时,尽可能选大额的钞票,这样就可以保证剩下足够多的零钱,有更多的金额组合形式,从而减少了不必要的浪费。这里你只需保证让最小的面值尽可能大即可。
现在告诉你初始时yzm10手里各张钞票的面值,你能猜出他是怎么支付的吗?
Input
第一行给出两个正整数:N(1<=N<=10^4)是yzm10手中的钞票数,M(1<=M<=100)是需要支付的金额。
第二行给出N张钞票的非负整数面值(保证在int范围内),数字间以空格分隔。
Output
在一行中按升序输出所需支付的各张钞票的面值,保证让最小的面值尽可能大,数字间以空格分隔。
若无法恰好凑出金额(不足或浪费),则输出-1。
Sample Input 1
4 10 2 3 7 8
Sample Output 1
3 7
Sample Input 2
5 10 2 3 4 4 5
Sample Output 2
2 4 4
Sample Input 3
2 10 5 11
Sample Output 3
-1
Hint
答案可能不唯一,本题采用special judge,输出任意一种即可。
样例1有两种取法(2,8)(3,7),2<3,选第二种。
样例2有两种取法(2,3,5)(2,4,4),因为最小值都为2,两种均满足条件。
题意不解释,解题思路:
01背包,看看是否能恰好装满,然后需要注意的就是在进行背包装卸的时候先排一下序,满足他们的要求,咱们要输出存在最小的值的那组数据,所以我们按照降序排列,之后的先装价值大的,之后就记录路径,(考察重点),保存到数组,然后输出即可。
ac代码:
#include<bits/stdc++.h>
#define maxn 10005
#define maxm 105
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
int num[maxn];
int dp[maxn];
int pre[maxn][maxm];
int ans[maxn];
int cnt=0;
bool cmp(int a,int b)
{return a>b;
}
int main()
{int n,m;
// memset(dp,-inf,sizeof(inf));
// dp[0]=0;scanf("%d%d",&n,&m);for(int i=0;i<n;i++)scanf("%d",&num[i]);sort(num,num+n,cmp);for(int i=0;i<n;i++)for(int j=m;j>=num[i];j--){if(dp[j]<dp[j-num[i]]+num[i]){dp[j]=dp[j-num[i]]+num[i];pre[i][j]=1;}}
// cout<<dp[m]<<endl;if(dp[m]!=m)cout<<"-1 -1"<<endl;else{int i=n-1,j=m;while(j){if(pre[i][j]>0){ans[cnt++]=num[i];j-=num[i];}i--;}printf("%d",ans[0]);for(int i=1;i<cnt;i++)printf(" %d",ans[i]);printf("\n");} return 0;
}
【qduoj】【yzm10与大富翁的故事】(hdu百度之星)相关推荐
- HDU 百度之星(测试赛) - 1002 列变位法解密
Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如下将明文字符分割成个数固定的分组(如5个一组,5即为密钥),按一组一行的次序整齐排列,最后不足一组不放置任 ...
- HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- 2019 年百度之星·程序设计大赛 - 初赛一 C. HDU 6670 Mindis 离散化+dijkstra
题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=6670 Mindis Time Limit: 4000/2000 MS (Java/Others) M ...
- HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 2019 年百度之星·程序设计大赛 - 初赛一Game HDU 6669 (实现,贪心)
Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- 2014年百度之星资格赛第一题Energy Conversion
2014年百度之星资格赛第一题Energy Conversion Problem Description 魔法师百小度也有遇到难题的时候-- 如今,百小度正在一个古老的石门面前,石门上有一段古老的魔法 ...
- 2016百度之星 - 初赛(Astar Round2B)解题报告
此文章可以使用目录功能哟↑(点击上方[+]) 被自己蠢哭,去年还能进一下复赛,今年复赛都没戏了... 链接→2016"百度之星" - 初赛(Astar Round2B) Prob ...
- 【百度之星2014~初赛(第二轮)解题报告】JZP Set
声明 笔者近期意外的发现 笔者的个人站点 http://tiankonguse.com/ 的非常多文章被其他站点转载,可是转载时未声明文章来源或參考自 http://tiankonguse.com/ ...
- 列变位法解密--百度之星B题
http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=584&pid=1002 关于百度之星的晋级规则说明 列变位法 ...
- 2016百度之星 - 初赛(Astar Round2A)解题报告
此文章可以使用目录功能哟↑(点击上方[+]) 有点智商捉急,第一题卡了好久,看来不服老,不服笨是不行的了...以下是本人目前的题解,有什么疑问欢迎提出 链接→2016"百度之星" ...
最新文章
- 深度分析define预处理指令
- ACMNO.16用迭代法求 。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的得差的绝对值少于0.00001。 输出保留3位小数 输入 X 输出 X的
- 连接一切:自媒体的未来是什么??
- nvprof 使用记录; 以及使用 nvprof 查看tensorflow-gpu 核函数运行记录
- 如何在一台没有网的电脑上安装anaconda_简述验证Anaconda是否安装成功的两种方式...
- Nodejs版本的企业微信中接收消息与腾讯对接之验证URL 代码已经上传,可以去下载
- Go语言编程17课:切片,步入数组的窗口(附pdf百度云)
- 博客目录及最新Github下载地址
- Java多线程 | 用多个线程模拟实现银行叫号系统
- 解决System进程占用80端口,关闭IIS服务
- php 专业英语,给大家推荐几个专业英语翻译功能强大的网站
- 互联网+对酒店IPTV电视系统的影响
- 【滤波器】2. 有源滤波器概述
- 实战:HPA(Pod 水平自动伸缩)-2021.11.23
- word自动消除html标签,如何将Word转换为网页html格式的方法(附代码清理方法)
- IaaS PaaS SaaS 读音及含义
- 单目标优化、多目标优化
- android vitamio框架,利用Vitamio框架来做自己的视频播放器
- Spring Boot SOAP系列之WSDL是什么“Lese”
- cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
热门文章
- chromium 各种版本下载
- 记事本开发 dos下编译java 多个类文件_通过记事本编写的java代码通过()命令运行。_学小易找答案...
- 最近计算机速度测试情况,速度测试
- Istio 流量管理
- 计算机网络教程第五版|微课版 - 第二章 物理层 - 重点概念
- .NET学习路线总结之LINQ查询
- mysql relay log 查看_Mysql-relay log
- 社招面试会遇到哪些坑?
- luogu P3369(Splay)
- 【英语词组】恋恋不忘Day4-2