【CodeForces训练记录】Codeforces Round 1002 (Div. 2)
训练情况
赛后反思
这个B题感觉太猜猜乐了,个人感觉B难度远大于C
A题
想要数组 \(c\) 至少有三个不同的元素,数组 \(a,b\) 的元素数的和必须 \(\ge 4\),如果种类和为 \(3\) 种,最多能凑出两种不同的数字
点击查看代码
#include <bits/stdc++.h>
// #define int long long
#define endl '\n'
using namespace std;
void solve(){
int n; cin>>n;
vector<int> a(n + 1),b(n + 1);
set<int> s1,s2;
for(int i = 1;i<=n;i++) cin>>a[i],s1.insert(a[i]);
for(int i = 1;i<=n;i++) cin>>b[i],s2.insert(b[i]);
if(s1.size() + s2.size() >= 4) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
signed main(){
int T; cin>>T; while(T--)
solve();
return 0;
}
B题
对于 \(n=k\) 的情况,我们只能选取偶数位,这个比较好处理直接判断即可,对于其他情况,答案不是 \(1\) 就是 \(2\),我们有一种分法,通过改变第一个子数组的长度来选择第二个子数组,所以第二个子数组的范围只能 \(2 \sim n-k+2\) 中选,如果全为 \(1\),第二个子数组就能选长度为 \(2\) 的 \([1,1]\),答案就是 \(2\),否则就存在一种选法使得第二个长度为一的子数组中不是 \(1\),所以答案是 \(1\)。
点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
void solve(){
int n,k; cin>>n>>k;
vector<int> a(n + 1);
for(int i = 1;i<=n;i++) cin>>a[i];
bool flag = false;
if(k == n){
int tot = 0;
for(int i = 2;i<=n;i+=2){
++tot;
if(a[i] != tot){
flag = true;
break;
}
}
if(!flag) tot++;
cout<<tot<<endl;
} else {
for(int i = 2;i<=n-k+2;i++){
if(a[i] != 1){
cout<<1<<endl;
return;
}
}
cout<<2<<endl;
}
}
signed main(){
int T; cin>>T; while(T--)
solve();
return 0;
}
C题
维护后缀连续 \(1\) 的个数,我们想要 mex 最大,只能每次贪心选择 \(1\) 个数最少的那一行,我们直接使用优先队列维护即可
点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
void solve(){
int n; cin>>n;
vector<vector<int>> a(n + 1,vector<int>(n + 1));
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i = 1;i<=n;i++){
for(int j = n;j;j--){
a[i][j-1] += a[i][j];
}
}
vector<int> lim(n + 1);
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
if(a[i][j] == n-j+1){
lim[i] = n-j+1;
break;
}
}
}
priority_queue<int,vector<int>,greater<int>> q;
for(int i = 1;i<=n;i++) q.push(lim[i]);
int now = 0;
while(q.size()){
int x = q.top(); q.pop();
if(x >= now) now++;
}
cout<<now<<endl;
}
signed main(){
int T; cin>>T; while(T--)
solve();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)