题解 CF1260C Infinite Fence

Posted colazcy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 CF1260C Infinite Fence相关的知识,希望对你有一定的参考价值。

那个晚上,1260C将我的名字颜色,彻底地改变了——《抱零之子》
题目链接

Solution CF1260C

题目大意:给定一段长为(10^{100})的木板,编号从(0)(10^{100}-1),给定(r,b,k leq 10^9),如果木板编号被(r)整除则必须刷成红色,被(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;
}

以上是关于题解 CF1260C Infinite Fence的主要内容,如果未能解决你的问题,请参考以下文章

C - Infinite Fence -1260C

「CF484E」Sign on Fence「整体二分」「线段树」

Educational Codeforces Round 77 (Rated for Div. 2) C. Infinite Fence

CF 363B Fence(暴力)

CF-234 F. Fence DP

CF-234 F. Fence DP