五六月安排
5.12江苏CPC
6.2、6.16、6.30三场百度之星省赛
6月蓝桥杯国赛
7.15 睿抗编程赛道省赛
5 6月两个科创需要申请完软著。
网络技术挑战赛过了资格赛,下面不知道怎么搞,如果参加需要花费很多的时间。
1.100个英语单词+一篇阅读,讲了文学批判
2.cf 补题
https://codeforces.com/contest/1966
3 蓝桥刷题,做了几题去年国赛题目
4 web前端学习
第一题,卡牌交换,如果一类卡的数目大于等于k了,就可以换成任意的k-1。刚开始没有想到,只要其他存在一张,讲当前的换成k-1的另一张,又组成了k张,所以最后应该是剩下k-1张。如果没有一类的卡片张数是大于等于k的,就输出n。即一次都不能进行合并
代码
#include <bits/stdc++.h>
// 这道题目 其实应该是很容易应该能想到的 只要大于等k章,只要原来就有一张,变为k-1+1大于等于k的
// 只要有一张大于等k就可以了,如果没有就是输出n;
// 用mp来记录每一个出现的次数
using namespace std;
void solve()
{
map<int, int> mp; //
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
mp[x]++;
}
// 如果出的次数大于k
//遍历mp
for (auto x : mp)
{
if (x.second >= k)
{
cout << k - 1 << endl;
return;
}
}
cout << n << endl;
}
int main()
{
int t;
cin >> t;
while (t--)
{
solve();
}
}
2 题目的意思是选择两个格子,如果这两个格子组成的颜色是相同的,讲中间的所有格子都变为当前的颜色,颜色只有黑和白。给出一个矩阵,能不能全部变成一种颜色。
其实分析一下,只要四个点都在四个边上了。就可以讲所有的格子颜色都变为0。
#include<bits/stdc++.h>
using namespace std;
void solve()
{
int n,m;
cin >> n >> m;
vector<string>a(n+1);
for(int i = 1; i <= n; i++){
cin >> a[i];
a[i] = " " + a[i];
}
map<int,int>Hash;
for(int i = 1; i <= m; i++){
if(a[1][i] == 'W'){
Hash['W']++;
break;
}
}
for(int i = 1; i <= m; i++){
if(a[1][i] == 'B'){
Hash['B']++;
break;
}
}
for(int i = 1; i <= m; i++){
if(a[n][i] == 'W'){
Hash['W']++;
break;
}
}
for(int i = 1; i <= m; i++){
if(a[n][i] == 'B'){
Hash['B']++;
break;
}
}
for(int i = 1; i <= n; i++){
if(a[i][1] == 'B'){
Hash['B']++;
break;
}
}
for(int i = 1; i <= n; i++){
if(a[i][1] == 'W'){
Hash['W']++;
break;
}
}
for(int i = 1; i <= n; i++){
if(a[i][m] == 'B'){
Hash['B']++;
break;
}
}
for(int i = 1; i <= n; i++){
if(a[i][m] == 'W'){
Hash['W']++;
break;
}
}
if(Hash['B'] == 4 || Hash['W'] == 4){
cout << "YES" << endl;
return;
}
cout << "NO" << endl;
}
int main()
{
int t;
cin>>t;
while(t--)solve();
}