http://acm.uestc.edu.cn/problem.php?pid=1784&&

來源:互聯網
上載者:User
Description

時間是最難以捉摸的東西,光是測量它們就已經很難了。一般而言,測量時間用一個可重複等時間長度發生的事件來定義最小的時間可測單位。於是Krolia想到了一個測量時間的好方法。
Krolia有一盒火柴,如果把火柴的頭去掉火柴就會變成一樣長的木棍。Krolia知道一根(沒有火柴頭)木棍一端點燃後,整個燃燒會持續x時間。Krolia還可以從兩端同時點燃木棍,這樣燃燒會持續x/2時間。現在Krolia想用這堆火柴來計時,問什麼樣的時間可以被完全精確地計算出。

Input

第一行一個整數T(T<=1000),表示有T組測試資料,每組測試資料行三個整數a,b,x(1<=a,b,x<=10^9)表示要測量a/b,一根火柴的燃燒時間長度是x時間。

Output

一個字串,"YES"或者"NO"表示能或者不能被精確計算。

Sample Input

4
1 1 1
1 2 1
1 4 1
1 5 1

Sample Output

YES
YES
YES
NO

Hint

從一端點燃一根木棍。
從兩端同時點燃一根木棍。
從兩端同時點燃一根木棍的同時,從一端點燃一根木棍。當第一根木棍燃燒殆盡的時候,把剩下的那根木棍的火熄滅。最後把剩下的木棍的兩端同時點燃。

昨天下午的比賽題,一個規律找了很久的題~ 

題意:給你兩個數x和x/2,問能否表示出a/b,通過找規律可知,如果x是偶數可以將其轉化奇數,然後找到x為奇數的規律:分子a必須可以整除x,b一定可以轉化為2的幾次方的形式。

AC代碼:

 #include <iostream>#include<string.h>#include<algorithm>#include<cstdio>#define CLR(arr,val) memset(arr,val,sizeof(arr))using namespace std;int gcd(int a,int b){    while(b)    {        int temp=a%b;        a=b;        b=temp;    }    return a;}void in(int &a){    char ch;    while((ch=getchar())<'0'||ch>'9');    for( a=0;ch>='0'&&ch<='9';ch=getchar()) a=a*10+ch-'0';}int main(){   int n;   while(~scanf("%d",&n))   {       for(int i=0;i!=n;++i)       {     int a,b,x;     in(a),in(b),in(x);     int ans=gcd(a,b);     a=a/ans;     b=b/ans;     while(x%2==0) x/=2;     int k=b;    if(a%x==0){           while(k%2==0) k/=2;           if(k==1) puts("YES");           else  puts("NO");     }     else  puts("NO");   }   }  return 0;}     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.