HDU 5527 贪心
Too Rich
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 1666 Accepted Submission(s): 422
For example, if p=17 and you have two $10 coins, four $5 coins, and eight $1 coins, you will pay it by two $5 coins and seven $1 coins. But this task is incredibly hard since you are too rich and the sticker is too expensive and pusheen is too lovely, please write a program to calculate the best solution.
1≤T≤20000
0≤p≤109
0≤ci≤100000
17 8 4 2 0 0 0 0 0 0 0
100 99 0 0 0 0 0 0 0 0 0
2015 9 8 7 6 5 4 3 2 1 0
-1
36
- #include <bits/stdc++.h>
- using namespace std;
- const int inf = 0x3f3f3f3f;
- int c[];
- int v[] = {,,,,,,,,,};
- int num[];
- int sum,mon,p,ans;
- int solve(int x) {
- int ret = ,need;
- for(int i = ; i >=; i--) {
- if(v[i]==) {
- need = x/;
- need = min(need,num[i]/);
- ret +=*need;
- x-=need*;
- }
- else if(v[i]==) {
- need = x/;
- need = min(need,num[i]/);
- ret +=*need;
- x-=need*;
- }
- else {
- need = x/v[i];
- need = min(need,num[i]);
- ret +=need;
- x -=need*v[i];
- }
- }
- if(x) return inf;
- return ret;
- }
- int main()
- {
- //freopen("in.txt","r",stdin);
- int T;
- scanf("%d",&T);
- while(T--) {
- sum = mon = ;
- scanf("%d",&p);
- for(int i = ; i < ; i++) {
- scanf("%d",&num[i]);
- sum +=num[i];
- mon +=num[i]*v[i];
- }
- p = mon - p; //最少的硬币去兑换
- if(p<) {
- puts("-1");
- continue;
- }
- ans = inf;
- ans = min(ans,solve(p));
- if(num[]) {
- p-=;num[]--;
- if(p>=)
- ans = min(ans,solve(p)+);
- p+=;num[]++;
- }
- if(num[]) {
- p-=;num[]--;
- if(p>=)
- ans = min(ans,solve(p)+);
- p+=;
- num[]++;
- }
- if(num[]&&num[]) {
- p-=;num[]--;num[]--;
- if(p>=)
- ans = min(ans,solve(p)+);
- }
- if(ans==inf) puts("-1");
- else printf("%d\n",sum-ans);
- }
- return ;
- }
HDU 5527 贪心的更多相关文章
- 【算法系列学习】HDU 5527 Too Rich贪心
http://www.cnblogs.com/AOQNRMGYXLMV/p/4934747.html #include<iostream> #include<cstdio> # ...
- Too Rich HDU - 5527 (贪心+dfs)
Too Rich Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ...
- HDU 5527 Too Rich 贪心
题意: 有\(10\)种面值为\(1, 5, 10, 20, 50, 100, 200, 500, 1000, 2000\)的纸币,现在你要选最多的数量凑成\(p\)块钱. 分析: 同样分析问题的反面 ...
- HDU 5527 Too Rich ( 15长春区域赛 A 、可贪心的凑硬币问题 )
题目链接 题意 : 给出一些固定面值的硬币的数量.再给你一个总金额.问你最多能用多少硬币来刚好凑够这个金额.硬币数量和总金额都很大 分析 : 长春赛区的金牌题目 一开始认为除了做类似背包DP那样子 ...
- HDU 5527:Too Rich(DFS+贪心)***
题目链接 题意 给出p块钱,现在要用十种硬币凑出,每种硬币有c[i]个,问最多能用多少个硬币. 思路 首先确定,对于每个硬币就是能用小的替换就不用大的. 所以,可以先把硬币尽量用小的替换,如果小的不够 ...
- Hdu 5289-Assignment 贪心,ST表
题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...
- hdu 4803 贪心/思维题
http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么? G++ AC C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...
- hdu 1735(贪心) 统计字数
戳我穿越:http://acm.hdu.edu.cn/showproblem.php?pid=1735 对于贪心,二分,枚举等基础一定要掌握的很牢,要一步一个脚印走踏实 这是道贪心的题目,要有贪心的意 ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
随机推荐
- python学习13-类的约束 异常处理 日志
一 .约束 python中约束有两种 第一种,通过抛异常进行约束,这种是子类不按我要求的来,我就给你抛异常(推荐) 操作:提取一个父类. 在父类中给出一个方法.但在方法中不给出任何代码,直接抛异常 # ...
- 2.Exadata 硬件体系结构
Exadata 硬件加构: 高性能,低成本 冗余 线性扩展 ,具有超强性能,开箱即用 例 2-2的满配: 8台数据服务器组成(2C 6核) (3-2是10核, 4-2,5-2 是12核 ...
- @font-face引用指定字体库(一)
创建 文件夹 font 存放指定字体库 在css文件中使用字体库: html, body{ font-family: "Microsoft YaHei",Arial,Helveti ...
- NFS 网络文件系统
1, NFS存储服务概念介绍 NFS是Network File System的缩写,中文意思是网络文件系统, 它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录 ...
- Hashtable和HashMap的区别,Properties类的简单使用
一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...
- CentOS 下 安装 JDK8
1.下载 在 /usr/local 目录下创建目录 java # cd /usr/local # mkdir java 登录网址:http://www.oracle.com/technetwork/j ...
- PCU
PCU(Peak concurrent users ),互联网术语,应用在网络游戏和其他互联网服务领域,意思是最高同时在线人数 业务系统架构性能提升主要分为两种不同的方式,scale-out(横向扩展 ...
- 修改Linux时区的2种办法
由于Azure 上所有的服务时间都采用了 UTC 时间.UTC 时间比中国时间晚 8 个小时,该如何按照自己的需要来进行修改呢,下面提供2种办法以供参考: 1.修改 /etc/localtime 文件 ...
- MVC3.0与MVC2.0的区别
昨天面试时第一回用MVC2.0做了一个简单的增删改查功能的测试.想一下用了一年多的MVC3.0,对这两个版本不同之处做以下几点总结: 最明显的是MVC3.0较MVC2.0而言,多了Razor视图: 1 ...
- .net Ioc 之 Unity 适合刚开始使用
介绍: 首先稍微介绍一下,Unity是微软patterns& practices组用C#实现的轻量级.可扩展的依赖注入容器,可通过代码或xml配置文件来配置对象之间的关系.那么通过一个简单的代 ...