8.23CF训练题解

A题Painting the Ribbon题解
其实这是一个经典的数学思维题 ,飘带有N段,每段可以着色,有M种颜色可以选择,另一个人有K次修改颜色的机会,问有没有方式使得飘带在K次修改后都无法变为单一颜色 ?

其实最简单的方法就是1–M颜色以此涂色,这样子各种颜色出现的又多又均衡 ,那么另一个人只能选择最多的一种颜色作为最终颜色,其他颜色全部修改。经过计算可以知道最多的那种颜色会有
N/M向上取整个,所以需要N- 向上取整(N/M)次机会才能变为单一颜色

#include<bits/stdc++.h>
using namespace std;
int main() {
   
	int a;
	cin>>a;
	for(int i=1;i<=a;i++){
   
		int n,m,k;
		int d=1;
		int s=0;
		cin>>n>>m>>k;
		d=n-(n/m);
		if(n%m!=0){
   
			d--;
		}
		if(d<=k){
   
			cout<<"NO";
		}
		else{
   
			cout<<"YES";
		}
		cout<<endl;
	}
	return 0;
}

B - Special Characters
简单题,按题目意思构造即可

#include<bits/stdc++.h>
using namespace std;
int main() {
   
	int a;
	cin>>a;
	for(int i=1;i<=a;i++){
   
		int b;
		cin>>b;
		int c=0;
		if(b%2==1){
   
			cout<<"NO"<<endl;
		}
		else{
   
			cout<<"YES"<<endl;
			while(c!=b/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值