Codeforces 1260
Posted oierwyh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces 1260相关的知识,希望对你有一定的参考价值。
DEF 题对于 wyh 来说过于毒瘤,十分不可做。
A. Heating
Description:
给定(a,b),将(b)分成至少(a)个正整数,使这些正整数的平方和最小。
Solution:
sb题,3minA掉,但是提交代码花了我近20min
Code:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
int T;
int a,b;
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&a,&b);
if(a>b){printf("%d
",b);continue;}
int ans=(b%a)*(b/a+1)*(b/a+1)+(a-b%a)*(b/a)*(b/a);
printf("%d
",ans);
}
return 0;
}
B. Obtain Two Zeroes
Description:
给定(a,b)和两种变化规则:
[a=a?x , b=b?2x ]
或
[ a=a?2x , b=b?x]
问能不能将(a,b)都变成0
Solution:
对 mod 3 余数讨论即可。
Code:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
ll T;
ll a,b;
int main()
{
cin>>T;
while(T--)
{
cin>>a>>b;
if(a>b) swap(a,b);
if((a*2-b)%3||a*2<b) printf("NO
");
else printf("YES
");
}
return 0;
}
C. Infinite Fence
Description:
给定(a,b,k),将a的倍数涂成红色,b的倍数涂成蓝色,a和b的公倍数随便涂,问是否存在一种方案,使得将涂色的数字从小到大排序后,不存在连续k个数是同一种颜色。
Solution:
结论:将(a)与(b)同除以(gcd(a,b)),结果不变。
这样我们就可以使(a,b)互质。假设(a<=b),然后判断啊(a*(k-1)+1)与(b)的关系就行了。具体见代码。
Code:
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
ll T,r,b,k;
ll gcd(ll a,ll b)
{
if(!b) return a;
return gcd(b,a%b);
}
int main()
{
scanf("%lld",&T);
while(T--)
{
scanf("%lld%lld%lld",&r,&b,&k);
ll g=gcd(r,b);r/=g;b/=g;if(r>b) swap(r,b);
if(r*(k-1)+1>=b) printf("OBEY
");
else printf("REBEL
");
}
return 0;
}
以上是关于Codeforces 1260的主要内容,如果未能解决你的问题,请参考以下文章
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段