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;
}