题解CF1260C【インフィニットフェンス】

その夜、私の名前の1260Cカラー、完全に変更 - 「ホールドゼロ息子」
トピックリンク

ソリューションCF1260C

タイトル効果:長さの一定期間のための\(10 ^ {100} \)から番号木材、(0 \)\(10 ^ {-1} 100 \)\、与えられた(R、B、K \ \ 10 ^ 9のLeq \) ボード番号がある場合、\(R&LT \)分割は、赤色塗装しなければならない\(B \)場合ながら分割は、青色塗装しなければならない\(R、bは\)分割ブラシが任意であってもよいです色は、合法的なプログラムがあるかどうかを尋ねます

分析:

\(10 ^ {100} \)無限大として使用することができます

まず、仮定\(R、bは\)互いに素である、または他の理由木材無限に長いと、我々は唯一の解決策かどうか、私たちはしますかを決定する必要がある(R、Bを\)\がで分割されている\(GCD(R、B) \) ではありません答えが影響します

仮定すると、\(R <B \) その後、私たちはの判断に非常に幸せになれます

この時点で、\(R、B \)プライム、我々は解決策を想定していない場合、連続\(K \)セグメントは赤色有する(R(K-1)\ +1 \) ので、青色木材されるべきではない、長期もし\(R(K-1) +1 <B \)は解、または可解性を有していません

#include <algorithm>
#include <cstdio>
using namespace std;
typedef long long ll;
int gcd(int a,int b){return !b ? a : gcd(b,a % b);}
int t,r,b,k;
inline void solve(){
    scanf("%d %d %d",&r,&b,&k);
    int w = gcd(r,b);
    r /= w;
    b /= w;
    if(r > b)swap(r,b);
    if(ll(k - 1) * r + 1 < b)puts("REBEL");
    else puts("OBEY");
}
int main(){
    scanf("%d",&t);
    while(t--)solve();
    return 0;
}

おすすめ

転載: www.cnblogs.com/colazcy/p/11961904.html