zoukankan      html  css  js  c++  java
  • C. Infinite Fence(数学,最小余数)

    传送门大门小门中门啊大家我

    (对于给定的r,b)

    (为了方便,设r<=b)

    (如果有k个块颜色相同)

    (那么一定是在某个[kb,(k+1)b]间连续有k个r的倍数)

    (因为一旦是b的倍数,就可以取不同的颜色,就达不到目的了.)

    (color{Orange}{于是,我们最少需要(k-1)*r+1的区间长度来构造})

    (但是出现b的倍数后,下一个出现的a的倍数位置不确定,我们能用的区间长度就不确定)

    (我们希望找一个a的倍数,尽量少的大于那个b的倍数,这样可用区间长就最多)

    (color{Red}{举个例子: 5 8 2 })

    (我们最少需要(2-1)*5+1的区间长度来构造)

    (然后我们发现25和24离得最近是1,那么可用区间就是32-25=7)

    (那么其实这个a倍数-b倍数的最小值就是gcd(r,b))

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    ll r,b,k;
    ll gcd(ll a,ll b){
    	return b==0?a:gcd(b,a%b);
    }
    int main()
    {
    	int t;cin>>t;
    	while(t--)
    	{
    		cin>>r>>b>>k;
    		//预期不可行,发现可行 
    		ll last=gcd(r,b);
    		ll empty=max(r,b)-last;//有这么大的空位
    		ll need=(k-1)*min(r,b)+1;//需要这么大
    		if(empty>=need)	cout<<"REBEL";
    		else	cout<<"OBEY";
    		cout<<endl; 
    	}
    }
    
  • 相关阅读:
    Mac + Python3 安装scrapy
    Pyqt4+Eric6+python2.7.13(windows)
    js基础⑥
    python模块之os,sys
    Python模块之random
    Python模块之PIL
    js基础⑤
    js基础④
    js基础③
    centOS目录结构详细版
  • 原文地址:https://www.cnblogs.com/iss-ue/p/12895245.html
Copyright © 2011-2022 走看看