CF941

A

link

其实,只要有第一次,那么下次随意找一个队列里有的数加\(k-1\)个进去,加上队列里那一个删掉\(k\)个,到最后一次肯定是剩\(k-1\)个。
没有第一次,就是\(n\)

点击查看代码
#include<bits/stdc++.h>

using namespace std;

int t;
int n,k;
int a[105];
int mp[105];

void qwq(){
	
	memset(mp,0,sizeof(mp));
	
	cin >> n >> k;
	for(int i = 1;i <= n;++ i){
		cin >> a[i];
		mp[a[i]]++;
	}
	
	bool f = 0;
	for(int i = 1;i <= 100;++ i){
		if(mp[i] >= k){
			f = 1;
			break;
		}
	}
	
	if(f) cout << k-1 << endl;
	else cout << n << endl; 
	
}

signed main(){
	
	cin >> t;
	while(t--) qwq(); 
	
	return 0;
	
}

B

link

只要四个边上都有相同的一个颜色就可以。

点击查看代码
#include<bits/stdc++.h>

using namespace std;

int t;
int n,m;
char a[505][505];

void qwq(){
	
	cin >> n >> m;
	for(int i = 1;i <= n;++ i){
		for(int j = 1;j <= m;++ j){
			cin >> a[i][j];
		}
	}
	
	bool w1,h1,w2,h2,w3,h3,w4,h4;
	w1 = h1 = w2 = h2 = w3 = h3 = w4= h4 = 0;
	
	for(int i = 1;i <= m;++ i){
		if(a[1][i] == 'W') w1 = 1;
		else h1 = 1;
	}
	for(int i = 1;i <= n;++ i){
		if(a[i][1] == 'W') w2 = 1;
		else h2 = 1;
	}
	for(int i = 1;i <= m;++ i){
		if(a[n][i] == 'W') w3 = 1;
		else h3 = 1;
	}
	for(int i = 1;i <= n;++ i){
		if(a[i][m] == 'W') w4 = 1;
		else h4 = 1;
	}
	
	if((w1&&w2&&w3&&w4)||(h1&&h2&&h3&&h4))
		cout << "YES\n";
	else cout << "NO\n";
	
}

signed main(){
	
	cin >> t;
	while(t--) qwq(); 
	
	return 0;
	
}
posted @ 2024-05-03 17:29  校牌杀手  阅读(9)  评论(0编辑  收藏  举报