• 只需要验证小间隔在大间隔之间有没有连续的k个
  • 设小间隔为a,大间隔为b,那么a在b之间出现的次数在\(\lfloor \frac{b}{a}\rfloor\)或者\(\lfloor \frac{b}{a}\rfloor+ 1\),问题转化为我们需要求a在b之间最多出现多少次和k比较即可

我的思路:

  • 设lcm为lcm(a,b),\(c=\frac{lcm}{a}\),\(d=\frac{lcm}{b}\),那么a在b之间最多出现\(\lceil\frac{c-1}{d} \rceil\),理解为将(c-1)平均分成d段(最后一个a算作b的,所以是c-1个)

标程思路(裴蜀定理):

若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。

  • 还是求a在b之间最多出现多少次,进一步再想,什么时候会出现最多的情况,那一定是a的起点在距离0最近的非0点上,列出式子\(ax-by=m\),m最小的时候为gcd(a,b),因此只需要验证\(gcd(a,b)+(k-1)*a\)和b的大小关系即可

#include<bits/stdc++.h>
#define ll long long
#define mk make_pair
#define ft first
#define se second
#define pii pair<int,int>
#define db double
#define ls o<<1
#define rs o<<1|1
#define lowbit(x) (x&-x)
using namespace std;
ll T, a, b, k;
ll gcd(ll a,ll b){
if(a<b)swap(a,b);
if(b==0)return a;
else return gcd(b,a%b);
}
int main(){
cin >> T;
while(T--){
cin >> a >> b >> k;
if(a > b)
swap(a, b);
ll tp;
if(b % a == 0){
tp = b / a - 1;
}else{
ll lcm = a / gcd(a, b) * b;
ll x = lcm / a, y = lcm / b;
x--;
tp = (x + y - 1) / y;
} if(tp >= k)
cout << "REBEL" << endl;
else
cout << "OBEY" << endl;
}
return 0;
} //标程
#include<bits/stdc++.h>
using namespace std;
typedef long long li; li a, b, k; inline bool read() {
if(!(cin >> a >> b >> k))
return false;
return true;
} inline void solve() {
li g = __gcd(a, b);
a /= g;
b /= g;
if(a > b)
swap(a, b);
if((k - 1) * a + 1 < b)
cout << "REBEL";
else
cout << "OBEY";
cout << endl;
} int main() {
#ifdef _DEBUG
freopen("input.txt", "r", stdin);
#endif
int tc; cin >> tc;
while(tc--) {
read();
solve();
}
return 0;
}

最新文章

  1. Java的集合框架
  2. linux开机启动服务和chkconfig使用方法(自定义服务路径启动)
  3. Android线程---UI线程和非UI线程之间通信
  4. winform中的时间轴控件
  5. angular js 指令的数据传递 及作用域数据绑定
  6. 发送cookie
  7. 分享一个jdk源码链接
  8. RMAN 备份
  9. 深度学习之卷积神经网络(CNN)详解与代码实现(一)
  10. 第四周java学习总结
  11. MacOS英文版Google浏览器添加印象笔记剪藏插件
  12. BZOJ 3007 [SDOI2012]拯救小云公主 - 对偶图 + 并查集
  13. 2018.12.17 bzoj1406 : [AHOI2007]密码箱(简单数论)
  14. 认识GMT和UTC时间-附带地理知识
  15. 【OC底层】AssociatedObject 关联对象
  16. 安装 GraphicsMagick
  17. android基础篇------------java基础(11)(文件解析xml and Json )
  18. MongoDB整理笔记のID自增长
  19. python中spilt()函数和os.path.spilt()函数区别
  20. makefile使用笔记(一)入门

热门文章

  1. CODING 2.0 服务升级:一站式服务体系助力企业研发上云
  2. Abp zero 登录 添加腾讯云验证码
  3. 请求*.html后缀无法返回json数据的问题
  4. PWA学习笔记(二)
  5. 创建以.xxx开头的文件夹的方法
  6. GIL以及协程
  7. 常用的git和repo命令
  8. [考试反思]1112csp-s模拟测试112:二返
  9. vue-cli2和cli3的使用和区别
  10. 【开发工具】IDEA简明使用指南