ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-04-10 20:31:39  阅读:247  来源: 互联网

标签:Educational Rated Fence lcm freopen txt include dp define


传送门

文章目录

题意:

在这里插入图片描述

思路:

碰到这样的题肯定是先写几个找找规律了,随便写几个就可以发现是以 l c m ( a , b ) lcm(a,b) lcm(a,b)为一个循环,所以我们只需要在一个周期 l c m ( a , b ) lcm(a,b) lcm(a,b)中求最长的一个跟 k k k比较即可。
我们假设 a < b a<b a<b, a a a涂蓝色, b b b涂红色,那么一个周期中蓝色个数为 x = b g c d ( a , b ) x=\frac{b}{gcd(a,b)} x=gcd(a,b)b​,红色个数为 y = a g c d ( a , b ) y=\frac{a}{gcd(a,b)} y=gcd(a,b)a​,由于我们在 l c m ( a , b ) lcm(a,b) lcm(a,b)的位置肯定是填红色更优,所以蓝色个数为 x = b g c d ( a , b ) − 1 x=\frac{b}{gcd(a,b)}-1 x=gcd(a,b)b​−1,现在问题转化成了在 y y y个抽屉里,平均的放入 x x x个,求放的个数最多的抽屉。这个时候答案就比较显然,即 c n t = x / y + ( x   m o d   y ! = 0 ) cnt=x/y+(x\bmod y!=0) cnt=x/y+(xmody!=0),再跟 k k k比较大小即可。

//#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;

//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }

typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;

const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;

LL a,b,k;

int main()
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);

    int _; scanf("%d",&_);
    while(_--)
    {
        scanf("%lld%lld%lld",&a,&b,&k);
        if(a>b) swap(a,b);
        LL x=b/__gcd(a,b)-1,y=a/__gcd(a,b);
        LL cnt=x/y+(x%y!=0);
        if(cnt>=k) puts("REBEL");
        else puts("OBEY");
    }



	return 0;
}
/*

*/


标签:Educational,Rated,Fence,lcm,freopen,txt,include,dp,define
来源: https://blog.csdn.net/m0_51068403/article/details/115583231

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有