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

ABC 452 补题

------------恢复内容开始------------
D No-Subsequence Substring

知识点:双指针,模拟

image

有两种求法,一种是直接求满足条件的子串,一种是求不满足条件的子串,然后用总的减去不满足的就是答案。

赛时做的是第二种,感觉这个题有教育意义,去看题解果然学到了很多()(也有可能是我水平太菜了)

void solve()
{string t;cin >> s >> t;n = s.size();m = t.size();s = ' ' + s;t = '#' + t;vvi nex(n + 4, vi(26, n + 1));//建一个nex数组,表示第i位开始j字母的位置for (int i = n; i >= 1; i--)//从后往前维护{nex[i] = nex[i + 1];nex[i][s[i] - 'a'] = i;}int ans = n * (n + 1) / 2;//总的子序列数量int cnt = 0;for (int l = 1; l <= n; l++)//双指针,左端点{int now = l;bool ok = 1;for (int i = 1; i <= m; i++)//依次枚举字符串t的每一位,看看是否存在{now = nex[now][t[i] - 'a'];if (now == n + 1){ok = 0;break;}now++;//找到一个之后,要让now到下一位,因为now本来那一位已经占了一位了}if (ok){now--;//因为每个循环都会让now++,所以最后会多加一个,所以now--;cnt += n - now + 1;//从now开始,到n,都是包含t的子串}}cout << ans - cnt << endl;
}

这是看别人代码的第一种

void solve()
{string t;cin >> s >> t;n = s.size();m = t.size();s = ' ' + s;t = '#' + t;vvi nex(n + 4, vi(26, n + 1));for (int i = n; i >= 1; i--){nex[i] = nex[i + 1];nex[i][s[i] - 'a'] = i;}int ans = n * (n + 1) / 2;int cnt = 0;for (int l = 1; l <= n; l++){int now = l;bool ok = 1;for (int i = 1; i <= m; i++){now = nex[now][t[i] - 'a'];if (now == n + 1){ok = 0;break;}now++;}if (ok){now -= 2;//now-=2回到前两位,就是刚刚好这个子串中没有t的子序列cnt += now - l + 1;//累加贡献}else{cnt += n - l + 1;//如果中途没查完就break了,说明后面这些再也不可能有含t子序列的s子串了,所以累加}}cout << cnt << endl;
}

E You WILL Like Sigma Problem

image
image

------------恢复内容结束------------

http://www.jsqmd.com/news/596932/

相关文章:

  • 书匠策AI:解锁毕业论文高效写作的“黑科技”秘籍
  • OpenClaw技能扩展实战:用Gemma-3-12b-it打造个人SEO文章助手
  • 终极指南:如何快速将 OpenSwiftUIAnimations 集成到你的 iOS 项目中
  • PvZ Toolkit:植物大战僵尸玩家的全能游戏伴侣
  • 书匠策AI:毕业论文写作的“智能魔法棒”大揭秘
  • 解读电爪供应商的选型标准与合作优势,推荐优质电爪供应商 - 品牌2026
  • Alice-Tools:让游戏文件处理变得高效便捷的开源解决方案
  • 跨平台制作macOS官方镜像:无Mac环境下的安全介质解决方案
  • ADI AD5940阻抗测量板初体验:从GitHub源码下载到IAR工程编译的完整避坑指南
  • GitHub Actions 跨平台缓存终极指南:Windows、Linux、macOS全兼容秘籍
  • 英雄联盟智能助手ChampR:三步轻松获取职业级出装与符文推荐
  • 别再死磕贝叶斯了!用Python手写一个DS证据理论合成器,搞定多源不确定信息融合
  • QMC音乐格式解放者:如何用QMCDecode破解加密壁垒,掌控你的数字音乐资产
  • 从零到一:手把手教你用SpringBoot+MyBatis搭建Tlias智能学习辅助系统后端(附完整源码)
  • OpenClaw备份策略:保障SecGPT-14B长期任务数据不丢失
  • BongoCat:让你的桌面充满生命力的互动伙伴
  • 缩略图预加载工具:让Windows用户告别文件夹预览卡顿
  • 华硕笔记本合盖模式终极指南:外接显示器工作不断电
  • TensorFlow-v2.15从零开始:利用镜像快速搭建稳定高效的AI开发环境
  • mirrord 终极教程:如何将本地进程无缝接入 Kubernetes 集群的完整指南 [特殊字符]
  • 终极指南:如何使用Polly.JS实现API版本控制与路径重写
  • 如何实现NextFaster极致图片优化:Vercel Blob与边缘缓存实战指南
  • Duix-Mobile:下一代全离线AI数字人交互平台革命性突破移动端实时交互体验
  • 屏幕截图与录屏常见问题解决:从滚动截屏到带标注的视频录制
  • 解锁突破平台限制:res-downloader资源获取的创新解决方案
  • FanControl:智能调节风扇转速的创新方案
  • 书匠策AI:毕业论文写作的“智慧魔法棒”大揭秘
  • 如何在PS4上使用GoldHEN Cheats Manager实现游戏修改:终极完整指南
  • Windows电脑安装安卓APK的完整指南:告别模拟器的终极解决方案
  • 从‘单打独斗’到‘团队协作’:实战解析如何将DeepSeek的文本能力与Gemini的多模态API组合使用