当前位置: 首页 > news >正文

AtCoder Beginner Contest 426 实况记录 + A-D 题解

省流:只有 \(1000\) 分,遗憾离场。

这篇文章用来警示大家不要在比赛中犯相同的错误。

A. OS Versions

AI 出来解释一下 \(\texttt{newer than}\) 翻译成“更新”何意味?

请判断版本 \(X\) 与版本 \(Y\) 是否相同或更新。

噢,原来是要 \(X\)\(Y\) 更(四声)新。

语法题,会写条件语句就行。

B. The Odd One Out

语法题,找不同。

C. Upgrade Required

唐得离谱了。

内心 OS:前缀和?差分?

然后发现不对劲。

注意到一共就 \(n\) 台电脑,那就用桶记录数量,每次暴力更新就行。前面归零的桶直接不管,每个桶只被暴力归零一次,时间复杂度 \(O(n)\)

这是入门题啊,我在想什么???

真的怒了!

D. Pop and Insert

很快发现性质:要通过形如 00111111000\(ABA\) 型子串进行线性计算。无非就是把 \(AB\) 推出去,然后再塞回来或把 \(BA\) 推出去,然后塞回来,又或是把两边的 \(A\) 推出去再塞回来,分别用式子计算取最小值就可以了!

不知道为什么写了那么久……

请输入文字
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 5; 
int n, a[N], tot, b[N]; 
string s;
void solve() {cin >> n >> s; int cnt1 = 0, cnt0 = 0; tot = 0;  for(auto v : s) cnt1 += (v == '1'), cnt0 += (v == '0'); //cnt1,cnt0分别是1的总数和0的总数int tmp = 1;  for(int i = 1; i < n; i++) {if(s[i] == s[i - 1]) {++tmp; }else {a[++tot] = tmp;  b[tot] = s[i - 1] - '0'; tmp = 1; }}a[++tot] = tmp, b[tot] = s[n - 1] - '0'; int minn = INT_MAX; if(tot == 1) {puts("0"); } else if(tot == 2) {printf("%d\n", min(cnt1, cnt0)); } else {for(int i = 3; i <= tot; i++) {int tmp1 = 0, tmp0 = 0; if(b[i] == 1) {tmp1 += a[i] + a[i - 2], tmp0 += a[i - 1];if(minn > (cnt0 - tmp0) * 2 + cnt1) {minn = (cnt0 - tmp0) * 2 + cnt1; //cout << i<<' '<<minn << endl; }minn = min(minn, cnt0 + (cnt1 - tmp1 + a[i - 2]) * 2); minn = min(minn, cnt0 + (cnt1 - tmp1 + a[i]) * 2);  }else { //mid = 1tmp1 += a[i - 1], tmp0 += a[i] + a[i - 2];if(minn > (cnt1 - tmp1) * 2 + cnt0) {minn = (cnt1 - tmp1) * 2 + cnt0; //cout << i<<' '<<minn << endl; } minn = min(minn, cnt1 + (cnt0 - tmp0 + a[i - 2]) * 2); minn = min(minn, cnt1 + (cnt0 - tmp0 + a[i]) * 2); }}printf("%d\n", minn); }return; 
} 
int main(){int t; cin >> t; while(t--) {solve(); }return 0;
} //AC 100
http://www.gsyq.cn/news/15870.html

相关文章:

  • 提示词攻击如何防范(2025):从 Indirect Prompt Injection 到 RAG 供应链的分层防御实战
  • 但行好事,莫问前程
  • 前端学习教程-环境配置
  • 微分和积分的区别
  • 202509_QQ_secret
  • Matlab R2024b下载及详细安装教程,附永久免费Matlab安装包
  • 数据结构 - 跳表 Skip List
  • 06. 定时器
  • NOIP之前的复健记录
  • 解码Huffman 编码与 Huffman 树
  • 深入解析:SAE J3072-2024插电式电动汽车(PEV)中的车载逆变器系统安全标准介绍
  • 实用指南:gitlab-runner 再次实践中理解和学习
  • 【自然语言处理】文本规范化知识点梳理与习题总结 - 教程
  • Rocky Linux 8 远程管理配置指南(宿主机 VNC + KVM 虚拟机 VNC) - 指南
  • 邮票收集问题正推证明
  • 2025 年 9 月习题集
  • 实用指南:Linux整个系统权限玩坏了怎么办
  • C# 代码规范
  • MySql的存储过程以及JDBC实战 - 详解
  • [MCP] 监听资源更新
  • 【C++哲学】面向对象的三大特性之 多态 - 实践
  • 2025CSP-S模拟赛58 比赛总结
  • 单一训练模式适应多个机器人本体 —— skiled brain —— 机器人酷刑现场,竟是为了锻造全能大脑,网友:求AGI饶了我
  • 2025/10/4 总结
  • HPE SPP 2025.09.00.00 - HPE 服务器固件、驱动程序和系统软件包
  • sql注入和xss漏洞
  • Python 2025:异步革命与AI驱动下的开发新范式 - 详解
  • 完整教程:精读C++20设计模式——行为型设计模式:解释器模式
  • 10.4模拟赛总结
  • 微服务项目->在线oj系统(Java-Spring)--竞赛管理 - 教程