zoukankan      html  css  js  c++  java
  • Game of Peace

    Time Limit: 4000ms, Special Time Limit:10000ms, Memory Limit:65536KB
    Total submit users: 20, Accepted users: 12
    Problem 13553 : No special judgement
    Problem description

    Bob has learned a new magic trick that needs a very special preparation. Once he masters the trick he will be able to bring peace to the world, but if he fails, the world will be destroyed.

    The preparation is performed as follows: There are two containers, initially one is empty and the other one has X marbles. Bob has a Marble Cloning Machine, it clones the marbles in the container with the larger number of marbles, then pours the new clones into the other container (e.g. if the two containers have 7 and 4 marbles, after the cloning step they will have 7 and 11 marbles). The machine does this cloning operation exactly M times. However, there is a bug in the machine, after it performs N cloning operations (N ≤ M ), it will add Y extra marbles to the container with the larger number of marbles. Then the machine will continue normally with the cloning operation exactly M - N times.

    During the cloning operations, if both containers have the same number of marbles, any of them can be considered the one with the larger number of marbles.

    Now, the bug in Bob’s machine is threatening to destroy the world. But his nerdy friend Alice told him that she knows how to fix it. All he has to do is to calculate the greatest common divisor of the sizes of the two containers after the cloning machine is done. Can you help Bob save the world?



    Input

    Your program will be tested on one or more test cases. The first line of the input will be a single integer T (1 ≤ T ≤ 1,000) representing the number of test cases. Followed by T test cases. Each test case will consist of a single line, containing 4 integers separated by a single space X , N , Y and M (1 ≤ X , Y ≤ 1,000) (0 ≤ N ≤ 70) (N ≤ M ≤ 100,000) which are the numbers as described above.



    Output

    For each test case print a single line containing “Case n:” (without quotes) where n is the test case number (starting from 1) followed by a space then the greatest common divisor of the sizes of the two containers after the machine is done.



    Sample Input
    2
    4 3 6 5
    5 1 15 2
    Sample Output
    Case 1: 2
    Case 2: 5
    Judge Tips
    Note In the first sample test case, the number of marbles in each container will be the following after each step: (4, 0), (4, 4), (4, 8), (12, 8), (18, 8), (18, 26), (44, 26). The greatest common divisor of 44 and 26 is 2.

    题意:

    有两个容器,一个为空,另一个有x大理石,总共有m次操作,每次操作可以从两容器较大的一个中克隆所有大理石并加到另一个容器中,执行完第n次操作后要在较大的容器中额外加入y大理石,再继续剩余m-n操作。求最终两容器中个数的最大公约数。

    附AC代码:

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstdio>
     6 using namespace std;
     7 
     8 typedef __int64 ll;
     9 
    10 ll t,x,n,y,m;
    11 ll a,b;
    12 
    13 ll GDC(ll a,ll b){
    14     return (b>0)?GDC(b,a%b):a;
    15 }
    16 
    17 int main(){
    18     while(cin>>t&&t){
    19         int ans=1;
    20         while(t--){
    21             cin>>x>>n>>y>>m;
    22             a=0;
    23             b=x;
    24             for(int i=1;i<=n;i++){
    25                 if(b>a){
    26                     a+=b;
    27                 }
    28                 else{
    29                     b+=a;
    30                 }
    31             }
    32              
    33             if(a>=b){
    34                 a+=y;
    35             }
    36             else{
    37                 b+=y;
    38             }
    39             
    40             
    41             ll sum;
    42             if(a>b){
    43                 sum=GDC(a,b);
    44             }
    45             else{
    46                 sum=GDC(b,a);
    47             }
    48             printf("Case %d: %I64d
    ",ans,sum);
    49             ans++;
    50         }
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    golang中os/user包用法
    golang中os包用法
    与table有关的布局
    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version
    canvas里调用getImageData的报security的问题
    CSS样式覆盖规则
    windows7文件夹怎样默认图片大图显示?
    Jboss,Tomcat 远程调试配置
    IE(IE6/IE7/IE8)支持HTML5标签
    JS 继承(类式 与 原型式)
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5700126.html
Copyright © 2011-2022 走看看