zoukankan      html  css  js  c++  java
  • 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 许可协议。转载请注明出处!
  • 相关阅读:
    我的WCF之旅(1):创建一个简单的WCF程序
    网页设计中颜色的搭配
    CSS HACK:全面兼容IE6/IE7/IE8/FF的CSS HACK
    UVa 1326 Jurassic Remains
    UVa 10340 All in All
    UVa 673 Parentheses Balance
    UVa 442 Matrix Chain Multiplication
    UVa 10970 Big Chocolate
    UVa 679 Dropping Balls
    UVa 133 The Dole Queue
  • 原文地址:https://www.cnblogs.com/radiumlrb/p/5797243.html
Copyright © 2011-2022 走看看