• Codeforces 1260C Infinite Fence(扩展欧几里得有解的条件)


    思路:

    1.此题的1010010^{100}我们可以将它当成正无穷,我们设x=min(r,b)x=min(r,b)y=max(r,b)y=max(r,b),由于重复的部分我们可以涂任意颜色,因此我们需要做的就是讨论在yy的两个倍数之间可不可以夹kkkk个以上的xx的倍数;
    2.我们设在mymy(m+1)y(m+1)y这段区间内(即[my+1,my+2,...,my+y1][my+1,my+2,...,my+y-1])可以含有最多的xx的倍数,根据贪心的思想,我们希望xx的倍数第一次应该出现在my+1my+1,但是这需要(my+1)modx=0(my+1)modx=0;根据扩展欧几里得算法有解的条件,我们可以得知在这段区间内,xx的倍数最早第一次出现的位置应该在my+gcd(x,y)my+gcd(x,y),得知最早第一次出现的位置,我们就可以计算整个区间内xx的倍数出现的最多次数了~,然后和kk做比较即可;

    代码:

    #define IOS ios::sync_with_stdio(false);cin.tie(0)
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    int gcd(int a,int b){
    	return b==0?a:gcd(b,a%b);
    }
    int main(){
    	int t; cin>>t;
    	while(t--){
    		LL r,b,k;
    		cin>>r>>b>>k;
    		LL x=min(r,b),y=max(r,b);
    		LL g=gcd(x,y); 
    		if(((y-1)/x+((y-1)%x>=g?1:0))>=k) puts("REBEL");
    		else puts("OBEY");
    	}
    	return 0;
    }
    
  • 相关阅读:
    打包成exe可执行文件的方法
    Html 重要单词归纳
    python基础---递归函数 知识点自查填空题
    python基础---内置函数 和 匿名函数 知识点自查填空题
    python基础---递归函数真题解析
    python 日记 day4。
    python 日记 day5 字典
    python 日记 day3
    python 日记 day4
    python 日记 day1
  • 原文地址:https://www.cnblogs.com/yuhan-blog/p/12308806.html
Copyright © 2020-2023  润新知