【CodeForces训练记录】Codeforces Round 1005 (Div. 2)

news/2025/2/22 13:18:50/文章来源:https://www.cnblogs.com/longxingx/p/18719210

训练情况

赛后反思

D题应该可以开出来的,看出了异或的性质,不等式可以移项,感觉是后缀异或+二分

A题

自己手玩一下就发现了,遇到首位1需要全部后缀移动到下面,再把首位0移动到上面,这样重复,所以我们从第一次出现 1 开始记录答案,操作次数为 01 交界处数量 + 1,另外特判一下全 0 和全 1 的情况

点击查看代码
#include <bits/stdc++.h>
// #define int long long
#define endl '\n'using namespace std;void solve(){int n; cin>>n;string s; cin>>s;int ans = 0;int sum = 0;bool flag = false;for(int i = 0;i<n;i++){sum += s[i] - '0';if(flag&&s[i] != s[i-1]) ans++;if(s[i] == '1') flag = true;}if(sum == 0) cout<<0<<endl;else if(sum == n) cout<<1<<endl;else cout<<ans+1<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

B题

这题需要观察到一个性质,就是操作不会使得分数增加,因为分数=长度-不同个数,删掉一个数必定对长度是负贡献,不同个数贡献可能为零或为负贡献(但一定小于等于长度的贡献),所以操作不会使得分数增加,所以我们保持初始数列状态的分数,我们只能选择一段内每个元素出现次数都为 1 次的数列,记录长度直接维护左右端点即可。

点击查看代码
#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);map<int,int> v;for(int i = 1;i<=n;i++) cin>>a[i],v[a[i]]++;int len = 0;int l = 0,r = 0;int now = 0;int nowl = INT_MAX,nowr = 0;for(int i = 1;i<=n;i++){if(v[a[i]] == 1) now++,nowl = min(nowl,i),nowr = max(nowr,i);else now = 0,nowl = INT_MAX,nowr = 0;if(now > len){l = nowl;r = nowr;len = now;}}if(l == 0 && r == 0) cout<<0<<endl;else cout<<l<<" "<<r<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

C题

我们发现删正数前面的数会没掉,负数后面的数会没掉,所以为了答案最大,我们只能选择前正后负的数列操作,正负中间有一个交界点,我们记录前缀正数和,后缀负数和,枚举交界点答案取最大值即可

点击查看代码
#include <bits/stdc++.h>
#define int long long
#define endl '\n'using namespace std;void solve(){int n; cin>>n;vector<int> a(n + 3);vector<int> pz(n + 3),pf(n + 3);for(int i = 1;i<=n;i++) cin>>a[i];for(int i = 1;i<=n;i++){if(a[i]>=0) pz[i] = pz[i-1] + a[i];else pz[i] = pz[i-1];}for(int i = n;i;i--){if(a[i]<0) pf[i] = pf[i+1] + a[i];else pf[i] = pf[i+1];}int ans = 0;for(int i = 1;i<=n;i++) ans = max(ans,-pf[i]+pz[i]);cout<<ans<<endl;
}signed main(){int T; cin>>T; while(T--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884943.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek-R1-671B 大模型本地部署详细教程

DeepSeek-R1大模型具备深度思考和推理能力,在数学、代码、自然语言推理等任务上都有着极大的提升。一方面由于官方或第三方的在线服务或多或少存在不稳定的问题,另一方面考虑到数据安全和隐私问题,本地私有化部署DeepSeek开源大模型对个人或企业来说也是一种不错的选择。本文…

引爆知识革命!Easysearch 携手 DeepSeek 打造下一代智能问答系统

去年我们尝试过使用 Easysearch + 千问 2 大模型打造一个企业内部知识问答系统,今年又有更加给力的大模型出现了--DeepSeek,性能对标 OpenAI o1 正式版。而且 Easysearch 对比去年也有了不少进步,是时候让我们升级下问答系统了。 DeepSeek 2025 年 1 月 20 日,人工智能领域…

人体碘元素知识

碘(化学符号:I,原子序数:53),碘是一种深紫色的固体,在常温常压下呈片状晶体。它具有较强的挥发性,当受热时,固体碘会直接转变为紫色的气体.在水中,碘不溶解,但可以溶解于一些有机溶剂中,例如乙醇和二甲苯。碘具有氧化性,在一些反应中可以作为氧化剂,例如氧化亚硫酸…

2025-02-16-snipd-format-for-obsidian

[!NOTE] This is a very early version, if something help, I would maintain it.Repo Meta<center>via: <a href=https://www.youtube.com/watch?v=bB-VWtidB5E target=_blank class=external-link>https://www.youtube.com/watch?v=bB-VWtidB5E</a><…

ingress生产环境安装方法

[!NOTE] 下载的Nginx Controller helm chart版本必须跟当前k8s版本兼容 官方参考地址:https://github.com/kubernetes/ingress-nginx/Supported Versions tableSupported Ingress-NGINX version k8s supported version Alpine Version Nginx Version Helm Chart Version🔄 v…

JUC并发-4.wait和notify以及Atomic原理

大纲 1.wait()与notify()实现一个简易的内存队列 2.wait()与notify()的底层原理 3.分布式存储系统NameNode机制介绍 4.分布式存储系统的edits log机制介绍 5.分布式存储系统的NameNode实现 6.分布式存储系统的创建目录功能的实现 7.edits log的全局txid机制和双缓冲机制实现 8.…

ACM寒假集训第六次专题任务

ACM寒假集训第六次专题任务 一、最大子段和 题目:解题思路: 维护两个变量:b 表示以当前元素结尾的最大子数组和,ans 表示全局的最大子数组和。遍历数组时,对于每个元素,更新 b 为当前元素值或当前元素与前一个最大子数组和的和(取较大值),同时更新 ans 为全局最大值。…

LGP9607 [CERC 2019] Be Geeks! 学习笔记

LGP9607 [CERC 2019] Be Geeks! 学习笔记 Luogu Link 题意简述 给定一个长为 \(n\) 的序列 \(A\)。 定义 \(G(l,r)=\gcd(a_l,a_{l+1}\cdots a_r)\); 定义 \(M(l,r)=\max(a_l,a_{l+1}\cdots a_r)\); 定义 \(P(l,r)=G(l,r)\times M(l,r)\); 计算 \(\sum P(i,j)[1\le i\le j\le…

卷积,toeplitz矩阵与傅里叶变换FT

卷积,toeplitz矩阵与傅里叶变换FT相关与卷积 一维相关和卷积运算是两个向量共同作用得到一个新的向量。 相关的分量形式: \[\begin{aligned} 映射(f: \mathbb{Z} \to \mathbb{R}),对于(w = (w(-a), \ldots, w(0), \ldots, w(a))), \\ 一维相关: g(x) = \sum_{s = -a}^{a}…

记录一次修复 JetBrains Rider 控制台输出乱码

在使用 JetBrains Rider 调试程序时,控制台输出日志出现了乱码。歪打正着结果困扰许久的问题得到了解决,于是记录下了这个小短文。 具体的修复建议如下:将终端编码设置为 GB2312 具体操作:设置->编辑器->常规->控制台->设置为 GB2312 ->保存之前在网上找各…

联合体union

占用大小按字节数最大的变量来,下面的联合体的大小为4字节typedef union MyUnion {char c; //1byteint i; //4byte } _MyUnion; int main() {_MyUnion v;printf("%x, %x\n", v.c, v.i); //未初始化时的值printf("%x, %x, %x, %x\n", &v, &v.c, &a…

使用docker搭建php开发环境

本文年代久远,可能已经不适用。仅供参考! 新的php镜像参考 多容器 apache+php+mariadb+redis主要配置 构建php镜像 基于官方php镜像进行定制,增加所需的php扩展,修改php配置,以及创建虚拟主机。 Dockerfile 文件php/Dockerfile FROM php:apache# php configure COPY php.i…