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

3 ABC411 C ~ E题解

ABC411 C~E 题解

又是赤石的一天

C

有个长度为 \(N\) 的序列,初始序列中每个数为0

每次操作给定 \(pos\) ,将 pos^1 ,然后输出序列中有多少段不连续的 1

用小样例模拟一下可得,设当前颜色为 \(b\) ,左边颜色为 \(a\) ,右边颜色为 \(c\) ,序列中不连续 1 的段数为 \(cnt\)

  • \(a\ne b\ 且\ b \ne c\ \to\ cnt \verb|-=|1\)
  • \(a = b\ 且\ b = c\ \to\ cnt \verb|+=|1\)

D

有一台服务器和 \(N\) 台 PC 。服务器和每台 PC 各持有一个字符串,最初所有字符串都是空的。PC 从 \(1 \sim N\) 编号

给出了 \(Q\) 个操作。每个操作都是以下格式之一:

  • 1 p:用 服务器 的字符串替换 \(p\) 的字符串。
  • 2 p s:在 \(p\) 字符串的末尾添加字符串 \(s\)
  • 3 p:用 \(p\) 的字符串替换 服务器 的字符串。

按照给定的顺序处理所有查询后,找出 服务器 的最终字符串。

一开始我想用 string 水过,但 T 飞了,因为 string 赋值操作的时间复杂度是 O(len) 的,后来查了查,发现 string 的很多操作都是 O(len) 的,以后要慎用

下面是正解

用链表来记录下每个 PC 的尾部字符串的编号,以及每个字符串的父串 (注意不能记录每个节点的子节点,这样在修改尾部时会丢失信息)

code

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <vector>using namespace std;const int N = 2e5 + 10;int n, m;
int f[N], p[N];
string s[N];int main () {scanf ("%d%d", &n, &m);memset (p, -1, sizeof p);int rt = 0, cnt = 0;for (int i = 1; i <= m; i++) {int op, x;cin >> op >> x;if (op == 1) {p[x] = p[rt];} else if (op == 2) {cin >> s[++cnt];if (p[x] == -1) {p[x] = cnt;f[cnt] = -1;} else {f[cnt] = p[x];p[x] = cnt;}} else {p[rt] = p[x];}}vector <string> ans;for (int i = p[rt]; i != -1; i = f[i]) {ans.push_back (s[i]);}for (int i = (int)ans.size() - 1; i >= 0; i--) {cout << ans[i];}cout << endl;return 0;
}
http://www.jsqmd.com/news/11195/

相关文章:

  • 9 ABC408 D~F 题解
  • 8 ABC425 G 题解
  • 智能防御,安全赋能:AI-FOCUS 滤海AI DLP 化解外部 AI 风险
  • VS code 中代码补全 自动补全函数括号
  • 学习ReAct并使用langgraph实现一个简单的ReAct AI Agent!!
  • 23种设计模式之【策略模式】-核心原理与 Java 实践 - 详解
  • 完整教程:lua代码解析1
  • system表空间丢失部分文件恢复---惜分飞
  • 二维数点
  • gitee和github如何修改仓库名并且保持与原远程仓库的连接?(手把手教学) - 实践
  • 2025.10.10总结 - A
  • [20251010]建立完善tpt的prr.sql脚本.txt
  • 第十一篇
  • [Flutter] Flutter APK构建签名并推广到Github workflow
  • Windows 电脑安装 XTerminal 1.25.1 x64 版(带安装包下载关键词)​
  • YOLOv11的神经辐射场(NeRF)辅助训练-(通过合成视角增强内容多样性)
  • testtest
  • 题解:AT_arc138_f [ARC138F] KD Tree
  • SP33 TRIP - Trip 个人题解
  • 经营不是老板一个人的事 - 智慧园区
  • Codeforces Round 1051 (Div. 2)[A ~E]
  • 如何在 Spring Boot 应用中配置多个 Spring AI 的 LLM 客户端
  • 2025 AI 进化图谱:技术突破、场景落地与产业重构 - 指南
  • 题解:P14065 [PO Final 2022] 对弈 / Laserschack
  • [Git] 放弃暂存区的修改
  • 前端里面transform和transition 属性的区别
  • 【MAC环境】安装多个 JDK - 指南
  • CF2064E Mycraft Sand Sort
  • 使用eBPF技术保护FastAPI安全
  • 项目案例作业2:对案例进行面向对象分析