• 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
    ",ans);
        return 0;
    }

    贪心,记得排序

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

    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 相关阅读:
    练习课(二)
    html5,实例开发代码
    html,移动端代码
    html5,导航
    html5,表格与框架综合布局
    html5,表格
    HTML5,添加图片
    HTML5,超级链接
    access链接最原始代码,两种
    显示刚刚添加的最后一条数据,access,选择语句,select
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5797243.html
Copyright © 2020-2023  润新知