TYVJ P1032 零用钱 Label:贪心

TYVJ P1032 零用钱 Label:贪心

背景

USACO OCT09 7TH

描述

作為创造產奶纪录的回报,Farmer John决定开始每个星期给Bessie一点零花钱。

FJ有一些硬币,一共有N (1 <= N <= 20)种不同的面额。每一个面额都能整除所有比它大的面额。

他想用给定的硬币的集合,每个星期至少给Bessie某个零花钱的数目C (1 <= C <= 
100000000)。请帮他计算他最多能支付多少个星期的零花钱。

输入格式

* 第一行: 两个由空格隔开的整数: N 和 C

* 第2到第N+1行: 每一行有两个整数表示一个面额的硬币:硬币面额V (1 <= V <= 
100,000,000)和Farmer John拥有的该面额的硬币数B (1 <= B <=
        1,000,000).

输出格式

* 第一行: 一个单独的整数,表示Farmer John最多能给Bessie支付多少个星期至少為C的零用钱。

测试样例1

输入

3 6 

10 1 

1 100 

5 120

输出

111

备注

FJ想要每个星期给Bessie六美分。他有100个1美分硬币,120个5美分硬币,和一个10美分硬币。

FJ可以在一个星期超额付给Bessie一个10美分硬币。然后接下来的10个星期每星期付给
Bessie两个5美分硬币。最后100个星期每星期付给Bessie一个1美分硬币跟一个5美分硬
币。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int N,C,ans,flag=1,k;
struct cc{
    int mon,num;
}a[25];

bool cmp(cc a,cc b){
    return a.mon<b.mon;
}

void init_(){
    scanf("%d%d",&N,&C);
    for(int i=1;i<=N;++i){
        scanf("%d%d",&a[i].mon,&a[i].num);
    }
    sort(a+1,a+N+1,cmp);
}

void solve(){
    for(int i=N;i>=1;--i){
        while(a[i].num>0&&k-a[i].mon>0){
            --a[i].num;
            k-=a[i].mon;
        }
    }
    for(int i=1;i<=N;++i){
        while(a[i].num>0&&k>0){
            --a[i].num;
            k-=a[i].mon;
        }
    }
}

int main(){
//    freopen("01.txt","r",stdin);
    init_();
    
    while(flag){
        flag=0;
        k=C;
        solve();
        if(k<=0){
            ++ans;
            flag=1;
        }
    }
    
    printf("%d\n",ans);
    return 0;
}

贪心,记得排序

吐槽一下,usaco很喜欢奶牛?这几天tyvj做下来全是奶牛

转载于:https://www.cnblogs.com/radiumlrb/p/5797243.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108901.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月17日 上午10:00
下一篇 2021年9月17日 上午11:00


相关推荐

  • ArrayDeque in Java[通俗易懂]

    ArrayDeque in Java[通俗易懂]ArrayDequeinJavaArrayDequeinJavaprovidesawaytoapplyresizable-arrayinadditiontotheimplementationoftheDequeinterface.ItisalsoknownasArrayDoubleEndedQueueorArrayDeck.Thi…

    2026年2月3日
    12
  • 让图片居中的css_css 图片居中

    让图片居中的css_css 图片居中图片的居中显示css有很多方法,但在很多情况下有的方法无效,这是件很头疼的事情,比如一般设置图片属性​text-align:center​水平居中,但这个方法经常无效,很多前端工程师都有研究过或者说是搜索过CSS图片居中方法吧。但其实CSS图片居中有多种不同的情况,也有多种不同的解决方法,具体方法如下所示:图片居中又分为水平居中和垂直居中提示:在你开始阅读以下内容之前,你可以先了解CSS图…

    2025年8月2日
    3
  • MySql修改表名的两种方法

    MySql修改表名的两种方法一、renamerenametable旧表名to新表名;renametablemysutonew_su;二、alteraltertable旧表名rename[as]新表名altertablemysurenameasnew_su;

    2022年6月1日
    2.2K
  • python获取当前系统的日期_Python获取当前日期时间

    python获取当前系统的日期_Python获取当前日期时间导入库 importdateti 获取当前日期和时间 now time datetime datetime now 格式化成我们想要的日期 strftime 比如 2016 09 21 datetime datetime now strftime Y m d 在当前时间增加 1 小时 add hour datetime datetime now datetime ti

    2026年3月20日
    1
  • stress加压

    stress加压安装 stress 模拟 linux 系统资源消耗 1 安装 yum 源 yuminstallep release y2 安装 stress yuminstallst y3 使用样例 stress c1 t604 测试场景举例 1 测试 CPU 负荷输入命令 stress c4 增加 4 个 cpu 进程 处理 sqrt 函数函数 以提高系统 CPU 负荷 2 内存测试输入命令 stress i4 vm10 vm bytes1G vm hang100 ti

    2026年3月16日
    1
  • task scheduler服务启动后停止.解决方法_windows创建定时任务

    task scheduler服务启动后停止.解决方法_windows创建定时任务WindowsTaskScheduler使用户可以在此计算机上配置和计划自动任务,同时托管多个Windows系统关键任务。

    2022年10月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号