CF833A意味のないゲーム题解

タイトル

Slastyonaと彼女の忠実な犬Pushokは、非常に興味深い無意味なゲームをプレイしています。

ゲームは複数のラウンドで構成されています。そのルールは非常に単純です。各ラウンドで、自然数kkが選択されます。次に、他の人より速く言う(または鳴く)方がラウンドに勝ちます。その後、勝者のスコアは\(k ^ {2} \)で乗算され、敗者のスコアはkkで乗算されます。ゲームの開始時に、SlastyonaとPushokのスコアはどちらも1です。

残念ながら、Slastyonaはすべてのnnゲームの履歴が記録されたメモ帳を紛失してしまいました。彼女は各ゲームの最終結果を思い出すことができましたが、それらのすべての彼女の思い出は曖昧です。Slastyonaが正しさを確認できるようにするか、言い換えると、与えられたスコアのペアごとに、ゲームがそのような結果で終了することが可能かどうかを判断します。

Slastyonaと彼女の忠実な犬Pushkは、意味がありませんが楽しいゲームをプレイしています。ゲームには複数のラウンドが含まれています。

そのルールは非常に単純です。最初に自然数\(k \)を選択します次に、他の人よりも速く(または鳴き)言った人がラウンドに勝ちます。その後、勝者のスコアはkの2乗で乗算され、敗者のスコアはkでのみ乗算できます。ゲームの開始時に、SlastyonaとPurSokにはそれぞれ初期スコアがありました。残念ながら、Slastyonaはメモ帳を紛失しました。メモ帳には、Nゲームの履歴が記録されています。彼女は各ゲームの最終結果をなんとか思い出すことができましたが、彼女の記憶はあいまいでした。Slastyonaが正しさを確認できるようにしてください。つまり、与えられたスコアの各ペアについて、ゲームがそのような結果を達成できるかどうかを判断します。

入力フォーマット

最初の文字列では、ゲーム数\(n(1≤n≤350000)\)が指定されています。

各ゲームは、スコアa、\(b( 1≤a、b≤109 )\)のペアで表されます– SlastyonaとPushokの結果に対応します。

出力フォーマット

スコアの各ペアについて、特定のスコアでゲームを終了できる場合は「はい」、それ以外の場合は「いいえ」と答えてください。

それぞれの文字を任意のケース(大文字または小文字)で出力できます。

入力例

6
2 4
75 45
8 8
16 16
247 994
1000000000 1000000

出力例

Yes
Yes
Yes
No
No
Yes

解決策

集合\(A \)とは、\(B \)二人のためのゲームのスコアです\(A \)\(B \) ゲームラウンドではありません(A \ CDOT K = \ 、B = Bを\ cdot k ^ 2 \)、つまり\(a = a \ cdot k ^ 2、b = b \ cdot k \)、ゲームのすべてのラウンドで、\(a \ cdot b \)の合計は\(k ^ 3 \)、最後の3つは整数で区切る必要があります。これは、これが存在する可能性があることを示します。

ただし、この条件では不十分であることに注意してください。

キューブの結果が\(a \)\(b \)の因数であるという条件もあります。

\(\ because ab = k ^ {3n} \)

$ \ therefore \ sqrt [3] {ab} = \ sqrt [3] {k ^ {3n}} = k ^ n $

\(p \)ゲームがプレイされ、\(a \)または\(b \)が少なくとも\(p \)\(k \)倍さ、次に\(k ^ n \)(オープンキューブの結果)乗算されていると想定されます。\(a \)\(b \)の因数でなければなりません

逆も真です。\(\ sqrt [3] {ab} = k ^ n \)が整数で、\(k ^ n \)\(a \)\(b \)の因数である場合、スコアは法的

コード

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        long long a, b;
        scanf("%lld%lld", &a, &b);
        long long m = pow(a * b, (1.0 / 3)) + 0.5;
        puts((m * m * m != a * b || a % m || b % m) ? "No" : "Yes");
    }
    return 0;
}

おすすめ

転載: www.cnblogs.com/youxam/p/cf833a.html