CSP202409B:字符串 K 次替换查询的高效解法

发布时间:2026/11/4 11:27:56

CSP202409B:字符串 K 次替换查询的高效解法 今天我们来看CSP202409B. 字符串变换这道题目题意很简单给定替换函数f将某些字符替换成其它字符求执行K次替换后的结果首先我们可以想到最暴力的解法1.维护一个mapchar,char mp记录每个映射关系2.执行k轮变换每轮变换对每个字符c执行操作cmp[c]这样就得到了如下代码# include bits/stdc.h using namespace std; #define itn int #define ll long long #define ld long double #define mod 998244353 int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); string s; getline(cin,s); // 有空格用getline读取 int n; cinn; cin.ignore(); mapchar,char mp; for (char c A; c Z; c) mp[c] c; for (char c a; c z; c) mp[c] c; for (char c 0; c 9; c) mp[c] c; mp[ ] ; string temp; for(int i0;in;i) { getline(cin,temp); mp[temp[1]]temp[2]; } mp[#]#; int m; cinm; while(m--) { int k; cink; string sss; for(int i0;iss.length();i) { for (int j 0; j k; j) { if (mp[ss[i]]ss[i]) break; ss[i]mp[ss[i]]; } } coutssendl; } return 0; }我们发现暴力的解法只能得到80分考虑对解法优化对每个字符c我们记录它不断映射后的结果无非两种1.进入自环形成一条链最后一个字符满足 mp[c] c可视为一个自环。2. 进入真循环存在 mp[a] b, mp[b] c, mp[c] a 的情况即形成环。也就是说f最后一定会进入某个循环那么我们只需要对每个字符进行dfs遍历找到循环起点和环大小如果k比循环起点小那么直接找路径对应位置否则说明已经进入循环对 k 取模后映射到环上的对应字符。这样我们就得到了满分代码# include bits/stdc.h using namespace std; #define itn int #define ll long long #define ld long double #define mod 998244353 char get(char c,int k,const mapchar,char mp) { vectorchar path; // 存储从字符c开始的变换路径 setchar visited; // 记录访问过的字符 char currentc; while (visited.find(current)visited.end()) { visited.insert(current); path.push_back(current); currentmp.at(current); } int cycle_start0; // 记录循环起点 while (path[cycle_start]!current) cycle_start; if (kcycle_start) return path[k]; int remainingk-cycle_start; int cycle_lenpath.size()-cycle_start; return path[cycle_startremaining%cycle_len]; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); string s; getline(cin,s); ss.substr(1,s.length()-2); int n; cinn; cin.ignore(); mapchar,char mp; for (char c A; c Z; c) mp[c] c; for (char c a; c z; c) mp[c] c; for (char c 0; c 9; c) mp[c] c; mp[ ] ; string temp; while (n--) { getline(cin,temp); mp[temp[1]]temp[2]; } int m; cinm; while (m--) { int k; cink; string ress; for (char c:res) { cget(c,k,mp); } cout#res#endl; } return 0; }感谢阅读转载标明出处
延伸阅读

更多相关文章

2026/10/27 22:00:05

Qt +C++ OpenCV+YOLO ONNX+PyTorch 整套技术栈分层掌握标准

Qt C OpenCVYOLO ONNXPyTorch 整套技术栈分层掌握标准按岗位需求分为三层:工程落地刚需层(必须精通)、模型转换辅助层(浅会即可)、算法训练进阶层(可选精通),适配机器视觉上位机、嵌…

2026/11/2 22:13:06

新手必看:CRM系统是什么?完整概念解读指南

你是不是对CRM的认知还停留在「存客户电话号码的通讯录」? 很多刚接触CRM的职场人、中小创业者都有这个误区:花几千块买个CRM,就是为了防止销售离职带走客户。但实际上,作为企业数字化转型最核心的工具之一,CRM的价值远…

2026/11/4 11:25:42

Hermes Agent模型部署实战指南:量化与剪枝技术深度解析

Hermes Agent模型部署实战指南:量化与剪枝技术深度解析 在AI应用开发领域,模型部署的效率直接决定了产品的响应速度和资源成本。Hermes Agent作为一款功能强大的AI代理框架,通过内置的量化与剪枝技术,能够将大型语言模型的推理速…

2026/11/4 11:25:42

MAS 激活脚本实操:4 种方式永久激活 Windows 与 Office

MAS 激活脚本实操:4 种方式永久激活 Windows 与 Office 【免费下载链接】Microsoft-Activation-Scripts Open-source Windows and Office activator featuring HWID, Ohook, TSforge, and Online KMS activation methods, along with advanced troubleshooting. 项…

2026/11/4 11:25:42

Komikku终极指南:掌握开源漫画阅读器的架构设计与实战技巧

Komikku终极指南:掌握开源漫画阅读器的架构设计与实战技巧 在Android平台寻找一款功能全面、完全免费的开源漫画阅读器吗?Komikku正是您需要的解决方案。这款基于TachiyomiSY和Mihon项目开发的漫画阅读器,不仅继承了前者的优秀基因&#xff…

2026/11/4 11:20:41

基于Springboot线上餐饮管理系统【附源码+文档】

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑