zoukankan      html  css  js  c++  java
  • HDU 4611 Balls Rearrangement (数学-思维逻辑题)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4611


    题意:给你一个N、A、B,要你求



    AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <cstdlib>
    #include <cmath>
    #include <vector>
    #include <list>
    #include <deque>
    #include <queue>
    #include <iterator>
    #include <stack>
    #include <map>
    #include <set>
    #include <algorithm>
    #include <cctype>
    #include <ctime>
    #pragma comment(linker, "/STACK:16777216")
    using namespace std;
    
    typedef __int64 LL;
    const int N=10005;
    const int INF=0x3f3f3f3f;
    const double PI=acos(-1.0);
    
    LL gcd(LL a,LL b)
    {
        if(b==0)
            return a;
        return gcd(b,a%b);
    }
    
    LL lcm(LL a,LL b)
    {
        return a/gcd(a,b)*b;
    }
    
    LL cost(LL n,LL a,LL b)
    {
        LL ans=0,x=0,y=0,tmp=0,now=0;
        while(now<n)
        {
            tmp=min(a-x,b-y);//找到最近达到0的有几个数,也就是当前有几个相同的数字
            if(tmp+now>n)
                tmp=n-now;
            ans+=tmp*(abs(x-y));
            x=(x+tmp)%a;
            y=(y+tmp)%b;
            now+=tmp;
        }
        return ans;
    }
    
    int main()
    {
        int t;
        cin>>t;
        LL n,a,b;
        while(t--)
        {
            cin>>n>>a>>b;
            LL l=lcm(a,b);
            if(l<=n)
                cout<<cost(l,a,b)*(n/l)+cost(n%l,a,b)<<endl;
            else
                cout<<cost(n,a,b)<<endl;
        }
        return 0;
    }


  • 相关阅读:
    Assignment 1-3 :Pattern Recognition
    GDB Guide
    Java 进阶
    Lab 4: Cache Geometries
    Buffer Overflows Lab
    二进制炸弹Lab
    Assignment 1-2 :Randomized Queues
    Assignment 1 :Percolation
    CSAPP Chapter 2
    在win7下用U盘安装Ubuntu,实现双系统
  • 原文地址:https://www.cnblogs.com/riskyer/p/3281285.html
Copyright © 2011-2022 走看看