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

题解:B4205 [常州市赛 2021] 特殊字符

题解:B4205 [常州市赛 2021] 特殊字符

前言

题目传送门

思路分析

因为数据范围较大,所以直接暴力构建字符串不仅仅会超时,还会爆空间,所以我们考虑模拟、跳过构建字符串,直接给出答案

我们对于每个特殊字符,从左向右遍历字符串:

  • 若遇到一段连续的特殊字符,我们则提取出需要复制的后续字符串
  • 特殊地处理一下子这串后续字符串,重复次数为连续特殊字符的数量
  • 接着继续判断
    • 如果第 \(K\) 个字符不落在这个范围内,正常推进即可
    • 如果答案落在这个范围内,直接判断并输出
  • 如果没有遍历到特殊字符,就正常推进

code

#include <bits/stdc++.h>
#define int long long     // 不开longlong见祖宗
using namespace std;
int n, k;
string s;
signed main()
{ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);cin >> n >> k;cin >> s;// 输入// 遍历26个小写字母,检查每个字母作为特殊字符的情况for (char c = 'a'; c <= 'z'; c++){int cnt = k;    // cnt: 当前还需要查找的字符位置(初始化为k)int num = 0;    // num: 记录连续出现的特殊字符c的数量// 遍历字符串的每个字符(包括结尾后一位(i<=n)for (int i = 0; i <= n; i++){if (s[i] == c)  // 如果当前字符是特殊字符c{num++;      // 连续特殊字符计数+1}else            // 如果当前字符不是特殊字符c{if (num)    // 如果之前有连续的特殊字符c{// sum: 计算复制次数,取num和剩余字符数(n-i)的最小值int sum = min(num, n - i);// 如果剩余的查找位置足够大,跳过这段被复制的字符不影响结果if (cnt > sum * num) {cnt -= sum * num;  // 减少cnti += sum - 1;     // 跳过被复制的字符num = 0;          // 重置连续特殊字符计数}else   // 剩余的查找位置在当前复制段内{cnt %= sum;       // 计算在该段中的位置if (!cnt) cnt = sum;  // 如果余数为0,取sum// 输出该段中的第cnt个字符cout << s[i + cnt - 1];cnt = num = 0;    // 重置break;            // 结束当前字符的处理}}else if (i != n)  // 如果没有连续的特殊字符且未到字符串末尾{cnt--;        // 直接消耗一个查找位置if (cnt == 0) // 如果找到第k个字符{cout << s[i];  // 输出当前字符break;         // 结束当前字符的处理}}}}if (cnt) cout << "*";  // 如果遍历完字符串仍未找到第k个字符,输出*}return 0;
}

时空复杂度分析

时间复杂度为循环次数相乘:

\[O(26\times n) \]

空间复杂度仅仅是输入的字符串 \(s\)

\[O(n) \]

http://www.gsyq.cn/news/31098.html

相关文章:

  • 郭念海 - coder
  • 20231326《密码系统设计》第五周预习报告
  • 2025年工业清洗剂厂家推荐排行榜,水洗/水基/碳氢/铝材/超声波/金属/真空/除油/防锈清洗剂源头厂家精选
  • 医疗智能体的工艺演进与路径分析:从多模态大模型到高阶综合智能体
  • 【安卓】
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑全景剖析
  • 大二才懂上课认真听的重要性
  • 【万元奖金】第二届CCF算法能力大赛开始啦!名校云集、名企汇聚,免费参赛!
  • 2025 多校 游记
  • 20232327 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025年新风系统厂家权威推荐榜:电竞酒店/商场别墅/极寒地区全热交换新风系统专业解决方案
  • 完整教程:在线教程丨百倍提速,中科院团队发布首个国产类脑脉冲大模型SpikingBrain-1.0,推理效率数量级提升
  • 2025年饮料包装设备厂家权威推荐榜:缠膜机/吹瓶机/膜包机/杀菌机/水处理/套标机/贴标机/洗瓶机/卸垛机/旋盖机/液氮机/装箱机/灌装生产线专业解析
  • 【API接口】最新可用抖音搜索接口
  • 拜耳作物科学提出一种生物学引导的神经网络框架用于基因组选择(GS)
  • DPCformer:一种用于作物基因组预测的可解释深度学习模型
  • android 基于okhttp的socket封装 - 实践
  • 2025 年 10 月门窗十大品牌榜单揭晓,专业制造与安全定制口碑之选
  • 线段树理论
  • 【数据分析】基于大内容的葡萄酒品质内容可视化分析体系 | 大数据毕设实战项目 选题推荐 文档指导+ppt+运行部署 Hadoop+SPark+java
  • 20232328 2025-2026-1《网络与系统攻防技术》实验三实验报告
  • 英语_阅读_Meeting
  • 磁盘格式化和LVM挂载
  • 2232
  • 1123
  • 2025.10.24——1黄
  • 20251026 之所思 - 人生如梦
  • 关于耐心,专注力及主动性
  • day02 pytorch介绍与安装
  • APT36组织利用Linux BOSS恶意软件通过.desktop文件攻击印度政府