当前位置: 首页 > 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.jsqmd.com/news/22960/

相关文章:

  • 郭念海 - coder
  • 软考五
  • ECC 学习笔记
  • Halcon算法——区域生长
  • [TOOL] Node.js: JavaScript运行环境安装
  • 转化漏斗(随笔)
  • 20231326《密码系统设计》第五周预习报告
  • 2025年实木家具厂家权威推荐榜:原木/全实木/北美黑胡桃/樱桃木/榫卯工艺/高端定制/全屋整装,烘干/白胚/木蜡油保养工艺深度解析
  • 2025年摘星搜荐怎么样:全面评测摘星AI的功能与优势
  • 2025年工业清洗剂厂家推荐排行榜,水洗/水基/碳氢/铝材/超声波/金属/真空/除油/防锈清洗剂源头厂家精选
  • GoroSort
  • Windows11文件夹右键-删除多余选项-加快打开速度
  • 2025年店铺装修设计施工一体化服务推荐榜:覆盖服装店/餐厅/商场/健身房/美容院等全行业专业装修公司精选
  • 于听讲中积淀,在实践中成长
  • 应用安全 --- xx_vm 插件
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑深度解读
  • 2025年TPU厂家权威推荐榜单:TPU加纤,TPU改性生产,专业定制与技术创新实力解析
  • 医疗智能体的工艺演进与路径分析:从多模态大模型到高阶综合智能体
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术核心实力与市场口碑深度解读
  • 【安卓】
  • 2025年中央空调主机保养/维修/清洗/维保/维护公司推荐排行榜,水处理维保,物业公司/医院/写字楼/商场中央空调主机维保厂家精选
  • 变盲从为探索:专注听课,深耕实干
  • 切空间、切丛与收缩算子
  • 2025年仿石漆厂家推荐排行榜,外墙仿石漆,内墙仿石漆,防霉仿石漆,水包水仿石漆,水包砂仿石漆,耐污仿石漆,自洁仿石漆公司推荐
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术研发实力与市场口碑全景剖析
  • 2025 年 10 月系统门窗十大品牌榜单揭晓,技术核心实力与市场口碑深度剖析
  • 大二才懂上课认真听的重要性
  • 知行合一,方能致远
  • 【万元奖金】第二届CCF算法能力大赛开始啦!名校云集、名企汇聚,免费参赛!
  • 乱学点东西#1 :二进制警报器