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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL中的数据类型_js中的数据类型

    MySQL中的数据类型_js中的数据类型主要介绍了mysql中的数据类型,主要介绍整数类型,浮点类型,日期类型。开发中每个表都会存在主键和更新时间,这时候选择那个数据类型作为主键也是很重要的,如果选择的数据类型太大会浪费空间,如果选择小了会影响后期开发。平时面试官也会问你那个数据类型作为主键最好。

    2022年9月19日
    3
  • java进销存ERP管理系统源码[通俗易懂]

    java进销存ERP管理系统源码[通俗易懂]java进销存ERP管理系统源码基于SpringBoot框架进销存源码+财务ERP源码+数据库技术框架核心框架:SpringBoot2.0.0持久层框架:Mybatis1.3.2日志管理:Log4j2.10.0JS框架:Jquery1.8.0UI框架:EasyUI1.3.5模板框架:AdminLTE2.4.0项目管理框架:Maven3.2.3开发环境IDE:IntelliJIDEA2017+eclipseDB:Mysql5.7.4JDK:JDK1.8

    2022年5月6日
    45
  • 如何实现复选框的全选和取消全选效果

    如何实现复选框的全选和取消全选效果:在很多网站都有这样的功能,当点击一个全选按钮之后,所有的复选框都会被选中,再点击之后会取消全选,功能非常的人性化,可以省却很多人力,下面就简单介绍一下JS如何实现此

    2021年12月21日
    48
  • 淘宝类目列表1~2~3~4~5级。及根据淘宝商品ID查询基础信息,类目ID查类目信息API调用[通俗易懂]

    http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/getCateInfo?cateId=50008882http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/getItemBaseInfo?indexCode=item,props,seller,apiStac…

    2022年4月16日
    267
  • JUnit 5和JUnit 4比较

    JUnit 5和JUnit 4比较JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。1. JUnit 5 vs JUnit 4 – 注释两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。特征 JUNIT 4 JUNIT 5 声明一种测试方法 …

    2022年6月13日
    74
  • 设备树详解

    设备树详解在Linux3.x版本后,arch/arm/plat-xxx和arch/arm/mach-xxx中,描述板级细节的代码(比如platform_device、i2c_board_info等)被大量取消,取而代之的是设备树

    2022年6月29日
    26

发表回复

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

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