zoukankan      html  css  js  c++  java
  • noj 2069 赵信的往事 [yy题 无限gcd]

    Accepted
    31MS
      224K
    1351Byte
    2014-11-13 13:32:56.0

    坑爹的无限gcd,,,尼玛想好久,原来要x对y算一次,y再对x算一次,,,

    赵信的往事

    时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
    总提交 : 20            测试通过 : 2 

    描述


    输入

    输出

    样例输入

    样例输出

    提示

    题目来源

     1 #include<cstdio>
     2 #include<cstdlib>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<string>
     6 #include<iostream>
     7 #include<algorithm>
     8 #include<set>
     9 #define maxi(a,b) (a)>(b)?(a):(b)
    10 #define mini(a,b) (a)<(b)?(a):(b)
    11 #define N 1000005
    12 #define mod 10000
    13 #define ll long long
    14 
    15 using namespace std;
    16 
    17 int T;
    18 int flag;
    19 int a[5];
    20 
    21 int gcd(int x,int y)
    22 {
    23     if(y==0)
    24         return x;
    25     return gcd(y,x%y);
    26 }
    27 
    28 void ini()
    29 {
    30     flag=1;
    31     scanf("%d%d%d",&a[0],&a[1],&a[2]);
    32     //printf("%d %d %d
    ",a[0],a[1],a[2]);
    33     sort(a,a+3);
    34 }
    35 
    36 
    37 void cal(int x,int y)
    38 {
    39     int g;
    40     if(x==1 && y==1) return;
    41     g=gcd(x,y);
    42     x/=g;
    43     y/=g;
    44     if(x==1 && y==1) return;
    45     else if(g==1 && y%x!=0){
    46         flag=0;return;
    47     }
    48     else{
    49         cal(x,g);
    50     }
    51     return;
    52     //}
    53 }
    54 
    55 void solve()
    56 {
    57    // printf(" sss
    ");
    58     cal(a[0],a[1]);
    59     cal(a[1],a[0]);
    60     if(flag==0) return;
    61   //  printf(" sss2
    ");
    62     cal(a[0],a[2]);
    63     cal(a[2],a[0]);
    64 }
    65 
    66 void out()
    67 {
    68     //printf(" oooo
    ");
    69     if(flag==1){
    70         printf("YES
    ");
    71     }
    72     else{
    73         printf("NO
    ");
    74     }
    75 }
    76 
    77 int main()
    78 {
    79    // freopen("data.in","r",stdin);
    80     scanf("%d",&T);
    81     while(T--)
    82    // while(scanf("%I64d",&n)!=EOF)
    83     {
    84         ini();
    85         solve();
    86         out();
    87     }
    88     return 0;
    89 }
  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/njczy2010/p/4094755.html
Copyright © 2011-2022 走看看