zoukankan      html  css  js  c++  java
  • ZOJ

    总结:题很简单,但是要考虑周全(尤其是对于INF的情况)

    题意:给定x,y,a,b 表示用x个空瓶子能换一个新的可乐(即包含瓶盖和瓶身),用y个瓶盖能换取一个新可乐,现在你有a个空瓶子以及b个瓶盖,问最多能换取多少瓶可乐(如果能换取无限瓶可乐则输出INF)

    思路:题意很简单 我们可以很快得到 a/x+b/y!=0的情况下 还能继续换可乐 ,同时下一次a,b的个数就要加上新换来的可乐个数 a = a%x+ a/x+b/y ; b = b%y+a/x+b/y ;

    然后关键在INF的判断上。 要使换来的可乐无限 , 即: 永远 a/x+b/y >0 ,而下一次的 a2/x+b2/x = (a1%x+ a1/x+b1/y) / x + (b1%y+a1/x+b1/y) /y > 0 所以这样可以求解出(道理是这样推但是并不会解)

    所以再换种思路想想,由于(0<a,b<=100) 所以定义一个阈值,超过我们就判他INF, 所以就做题而言(考虑第二种思路更有可能完成该题)

    完整代码:(这个是有结论的,判断INF条件(但是很多题解上面并没有说怎么推导的))

    #include <iostream>
    #define LL long long 
    using namespace std;
    int main(){
        int n;
        cin>>n;
        while(n--){
            int x,y,a,b;
            cin>>x>>y>>a>>b;
            if((x==1||y==1)||((x==2&&y==2)&&(a>=x||b>=y)))
            cout<<"INF"<<endl;
            else{
                int tmp;
                long int cnt = 0;
                while(a/x+b/y){
                    tmp =a/x+b/y;
                    a = a%x+tmp;
                    b = b%y+tmp;
                    cnt += tmp;
                }
                cout<<cnt<<endl;
            }
        }    
    }

    代码2:

    #include <iostream>
    #define LL long long 
    const int inf = 1e3;
    using namespace std;
    int main(){
        int n;
        cin>>n;
        while(n--){
            int x,y,a,b;
            cin>>x>>y>>a>>b;
            int tmp,flag = 0;
            long int cnt = 0;
            while(a/x+b/y){
                tmp =a/x+b/y;
                a = a%x+tmp;
                b = b%y+tmp;
                cnt += tmp;
                if (cnt>=inf) {
                    flag = 1;
                    cout<<"INF"<<endl;
                    break;        
                }
            }
            if(!flag) cout<<cnt<<endl;    
            
        }    
        return 0;        
    }
  • 相关阅读:
    Java之泛型练习
    集合框架-Map练习-记录字母出现的次数
    集合框架Map之entrySet方法的使用
    集合框架Map之KeySet方法的使用
    Java集合框架之LinkedList-----用LinkedList模拟队列和堆栈
    springboot2.0+mycat实验读写分离
    mysql主从复制
    mycat读写分离
    kafka初探
    redis-List类型
  • 原文地址:https://www.cnblogs.com/Tianwell/p/11229802.html
Copyright © 2011-2022 走看看