首页 > 其他分享 >贪心找零钱

贪心找零钱

时间:2022-10-26 21:05:12浏览次数:43  
标签:硬币 C50 零钱 Vec pair C500 C100 贪心


题目描述

楚乔、宇文玥和燕洵在日本旅行,经过了几天的游玩之后,钱包里出现了大量硬币,楚乔决定用钱包里的硬币为宇文玥和燕洵在自动贩卖机买水。楚乔的钱包里有1元、5元、10元、50元、100元和500元硬币各C1,C5,C10,C50,C100,C500枚。现在要用这些硬币来到自动贩卖机买价格为A的饮料,假设自动贩卖机所需的硬币金额必须是刚刚好,不能多也不能少,最少需要多少枚硬币?

限制条件

0≤ C1,C5,C10,C50,C100,C500≤1000000000

0≤A≤1000000000

依次输入C1,C5,C10,C50,C100,C500和A,以空格分隔,输出最少所需硬币数,如果该金额不能由所给硬币凑出,则返回NOWAY

 

输入描述:

依次输入C1,C5,C10,C50,C100,C500和A,以空格分隔

输出描述:

输出最少所需硬币数,如果该金额不能由所给硬币凑出,则返回NOWAY

示例1

输入

复制

3 2 1 3 0 2 620

输出

复制

6

说明

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

bool Cmp(const pair<int,int>& A,const pair<int,int>& B){
return A.first > B.first;
}

int main(){
vector<pair<int,int>> Vec;int Result = 0;
int C1,C5,C10,C50,C100,C500,A;
cin >> C1 >>C5 >> C10 >>C50 >>C100 >>C500 >> A;
Vec.push_back(make_pair(1,C1));
Vec.push_back(make_pair(5,C5));
Vec.push_back(make_pair(10,C10));
Vec.push_back(make_pair(50,C50));
Vec.push_back(make_pair(100,C100));
Vec.push_back(make_pair(500,C500));
sort(Vec.begin(),Vec.end(),Cmp);
for(int i = 0;i < 6;i ++){
int Need = A / Vec[i].first;
if(Need <= Vec[i].second){
A = A - Need * Vec[i].first;
Result += Need;
}
else {
A = A - Vec[i].first * Vec[i].second;
Result += Vec[i].second;
}
}
if(A > 0){
cout << "NOWAY" << endl;
}
else {
cout << Result << endl;
}
return 0;
}

 

标签:硬币,C50,零钱,Vec,pair,C500,C100,贪心
From: https://blog.51cto.com/u_13121994/5798510

相关文章

  • 贪心--(货币找零)
    题目描述楚乔、宇文玥和燕洵在日本旅行,经过了几天的游玩之后,钱包里出现了大量硬币,楚乔决定用钱包里的硬币为宇文玥和燕洵在自动贩卖机买水。楚乔的钱包里有1元、5元、10元、......
  • 贪心
    Saruman'sArmyTimeLimit: 1000MS MemoryLimit: 65536KTotalSubmissions: 19615 Accepted: 9580DescriptionSarumantheWhitemustleadhisarmyalongastraig......
  • 贪心--带最少的零钱
    题目描述你就要去购物了,现在你手上有N种不同面值的硬币,每种硬币有无限多个。为了方便购物,你希望带尽量少的硬币,但要能组合出1到X之间的任意值。输入格式第一行两个数X、N,以......
  • Monster (贪心)
    Monster【题目描述】明明的手机上有这样一个游戏,有一排n个怪物,每个怪物的血量是mi。现在明明可以射出k个伤害均为p的火球射向某些怪物。当某个火球射到第i个怪物,除了这个怪......
  • BZOJ 1007(水平可见直线-斜率排序+栈贪心)
    1007:[HNOI2008]水平可见直线TimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 1830  Solved: 656[​​Submit​​][​​Status​​][​​Discuss​​]......
  • 贪心算法-455分发饼干
    题目455分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干......
  • 第三个贪心
    A-汽车加油问题#include<bits/stdc++.h>usingnamespacestd;inta[5010],n,k;signedmain(){cin>>n>>k;for(inti=0;i<=k;i++)......
  • 贪心算法 455
    455.分发饼干classSolution{publicintfindContentChildren(int[]g,int[]s){Arrays.sort(g);//孩子列表Arrays.sort(s);//饼干列表......
  • Madoka and the Sixth-graders (全排列队列,每一个点可以向外连1条线题型+倍增法处理
    题意:Madoka的教室里有 nn 个座位,一开始,编号为 ii 的座位上坐着编号为 b_i(1\leb_i\len)bi​(1≤bi​≤n) 的同学。门外有排成一队的,编号从 n+1n+1 开始的,......
  • Madoka and Childish Pranks (贪心+逆序即可)
    题目大意: 给定一个01矩阵,其中0代表黑色,1代表白色Madoka要对一个同样大小的0矩阵染色,每次染色可以将一个矩形染成国际象棋的颜色(-1)^(x+y)的颜色(1白2黑)现......