Problem F
is the best age!" Dong MW works hard and get high pay, he has many
1 Jiao and 5 Jiao banknotes(纸币), some day he went to a bank and
changes part of his money into 1 Yuan, 5 Yuan, 10 Yuan.(1 Yuan = 10
Jiao)
"Thanks to the best age, I can buy many things!" Now Dong MW has a
book to buy, it costs P Jiao. He wonders how many banknotes at
least,and how many banknotes at most he can use to buy this nice
book. Dong MW is a bit strange, he doesn't like to get the change,
that is, he will give the bookseller exactly P Jiao.
in the first line, indicating the case number. T lines with 6
integers each: P a1 a5 a10 a50 a100 ai means number of i-Jiao
banknotes. All integers are smaller than 1000000.
A,B for each case, A is the fewest number of banknotes to buy the
book exactly, and B is the largest number to buy exactly.If Dong MW
can't buy the book with no change, output "-1 -1".
6
10 10
20 20
50 100这几种面值的钱,且个数是给定的,给你一个钱数,让你求最多硬币树,和最少硬币数;
#include
#include
#include
using namespace std;
int mina(int a[],int p,int a_m[])
{
int
ans=0;
for(int
i=5;i>1;i--)
{
if(p>=a[i]*a_m[i])//看看当前剩下的钱是不是比枚举到的钱数大
{
ans+=a[i];
p-=a[i]*a_m[i];
}
else//小
{
ans+=p/a_m[i];
p%=a_m[i];
}
if(p>a[1]) return -1;
else return
ans+p;
}
int maxa(int a[],int p,int a_m[],int sum[])
{
int
ans=0;
for(int
i=5;i>1;i--)
{
if(p<=sum[i-1])//p比当前金币的总价值小
continue;
else//大
{
int t;
t=((p-sum[i-1])/a_m[i])+(((p-sum[i-1])%a_m[i])?1:0);
//(p-sum[i-1])是除去当前钱数之前的钱数之和
ans+=t;
p-=t*a_m[i];
//printf("t=%d a[i]_m=%d p=%d\n",t,a_m[i],p);
}
}
//printf("P=%d a[1]=%d\n",p,a[1]);
if(p>a[1]) return -1;
else return
ans+p;
int solve(int a[],int p,int a_m[])
{
int
minn=0,maxn=0;
int
sum[6]={0};
for(int
i=1;i<6;i++)
sum[i]=sum[i-1]+a[i]*a_m[i];
minn=mina(a,p,a_m);
maxn=maxa(a,p,a_m,sum);
//printf("minn=%d maxn=%d\n",minn,maxn);
if(minn==-1)printf("-1 -1\n");
else
{
if(maxn==-1)printf("-1 -1\n");
else
printf("%d %d\n",minn,maxn);
}
}
int main()
{
//freopen("in.txt", "r", stdin);
int
a[6],a_m[6]={0,1,5,10,50,100},sum=0,n,p;
scanf("%d",&n);
for(int
i=0;i
{
memset(a,0,sizeof(a));
scanf("%ld%ld%ld%ld%ld%ld",&p,&a[1],&a[2],&a[3],&a[4],&a[5]);
for(int j=1;j<6;j++)
{
sum+=a_m[j]*a[j];
}
if(sum
else solve(a,p,a_m);
}
return
0;
}
Problem F的更多相关文章
- 实验12:Problem F: 求平均年龄
Home Web Board ProblemSet Standing Status Statistics Problem F: 求平均年龄 Problem F: 求平均年龄 Time Limit: ...
- The Ninth Hunan Collegiate Programming Contest (2013) Problem F
Problem F Funny Car Racing There is a funny car racing in a city with n junctions and m directed roa ...
- Codeforces Gym 100500F Problem F. Door Lock 二分
Problem F. Door LockTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/at ...
- Codeforces Gym 100002 Problem F "Folding" 区间DP
Problem F "Folding" Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/ ...
- Codeforces Gym 100286F Problem F. Fibonacci System 数位DP
Problem F. Fibonacci SystemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- Problem F: Exponentiation
Problem F: ExponentiationTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 4 Solved: 2[Submit][Status][W ...
- Problem F: 合唱比赛开始了!
Problem F: 合唱比赛开始了! Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 440 Solved: 201[Submit][Status][ ...
- 几何入门合集 gym101968 problem F. Mirror + gym102082 Problem F Fair Chocolate-Cutting + gym101915 problem B. Ali and Wi-Fi
abstract: V const & a 加速 F. Mirror 题意 链接 问题: 有n个人在y=0的平面上(及xoz平面).z=0平面上有一面镜子(边平行于坐标轴).z=a平面上有q个 ...
- Problem F Plug It In!
题目链接:https://cn.vjudge.net/contest/245468#problem/F 大意:给你插座和电器的对应关系,有多个电器对应一个插座的情况,但是一个插座只能供一个电器使用,现 ...
- 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem F. Judging Time Prediction 优先队列
Problem F. Judging Time Prediction 题目连接: http://www.codeforces.com/gym/100253 Description It is not ...
随机推荐
- 蓝色巨人IBM
1911年IBM的前身CRT建立,在中华民国时期就与中国有很多商业合作,中国中央银行,中国银行,黄埔造船厂,建国后直到中美建交,IBM与中国的关系越来越紧密,今晚看了一遍关于蓝色巨人的视频,收益匪浅. ...
- 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
有不少人问到:flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位.为什么要偏1位? (全文有点晦涩,建议收藏本文对 ...
- mybatis枚举映射成tinyint
第一步:定义顶级枚举接口 public interface BaseEnum<E extends Enum<?>, T> { public T getCode(); publi ...
- JS组件系列——基于Bootstrap Ace模板的菜单Tab页效果优化
前言:之前发表过一篇 JS组件系列——基于Bootstrap Ace模板的菜单和Tab页效果分享(你值得拥有) ,收到很多园友的反馈,当然也包括很多诟病,因为上篇只是将功能实现了,很多细节都没有处理 ...
- C "right-left" 从左到右
葵花宝典:http://ieng9.ucsd.edu/~cs30x/rt_lt.rule.html C混带代码大赛
- JavaWeb(六)之MVC与三层架构设计
前言 这段时间要学习hadoop,但是也希望把自己的web知识复习起来.所以花自己休息的时间把这些web的知识好好的巩固一下!没有什么可以阻挡我前进的脚步. 首先我们先了解一下: C/S:客户端 / ...
- 简单Elixir游戏服设计-玩家进程注册
上回说用Registry 做本地注册(跨服可以用syn,只是稍微麻烦点,需要模拟global注册机制,写个封装模块). 修改game_server 项目的mix.exs, 增加应用启动 def app ...
- 【Learning】多项式乘法与快速傅里叶变换(FFT)
简介: FFT主要运用于快速卷积,其中一个例子就是如何将两个多项式相乘,或者高精度乘高精度的操作. 显然暴搞是$O(n^2)$的复杂度,然而FFT可以将其将为$O(n lg n)$. 这看起来十分玄学 ...
- 【DDD】业务建模实践 —— 人关注人
社区业务领域中,存在‘人关注人’的场景,在这个场景中,关系较为复杂,且均表现在‘人’同一个业务实体上,因此,这个case的建模过程值得思考.本文将就‘人关注人’这个业务case的领域建模进行探讨,欢迎 ...
- 关于TileBrush中Viewbox,Viewport以及Stretch,AlignmentX/Y的详细研究
我们知道TileBrush是WPF中一个战斗力爆表的虚基类,从它派生出的DrawingBrush,ImageBrush和VisualBrush在WPF图形编程中发挥着重要作用.然而关于TileBrus ...