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

2026.04.07 作业- # AT_abc452_d [ABC452D] No-Subsequence Substring

题目描述

给定两个仅由小写英文字母组成的字符串 ( S ) 和 ( T )。

请你求出字符串 ( S ) 的所有非空子串中,不包含 ( T ) 作为其子序列的子串的数量。

输入格式

第一行输入字符串 ( S )
第二行输入字符串 ( T )

输出格式

输出一个整数,表示满足条件的非空子串数量。

数据范围

  • ( 1 \leq |S| \leq 2 \times 10^5 )(( |S| ) 表示字符串 ( S ) 的长度)
  • ( 1 \leq |T| \leq 50 )(( |T| ) 表示字符串 ( T ) 的长度)
  • ( S ) 和 ( T ) 仅由小写英文字母组成

样例输入1

abc
ab

样例输出1

5

样例解释

( S=abc ) 的所有非空子串共6个:abcabbcabc
其中包含 ab 作为子序列的只有 ababc 这2个
因此不满足条件的数量为 ( 6-1=5 )

题解

  1. 要求:统计满足条件的字串个数,在 S 的所有非空子串s中,统计那些不包含 T(子序列) 的个数。
  2. 问题转化为:以 \(l\) 为左边界,包含子序列 T 的最小右边界为 \(r\) ,区间 \([l,r)\) 必然不包含子序列 T,满足条件的子串个数为 \(r-l\)
    3.问题转化为求 \(r\)的问题。 预处理 数组\(nxt[i][ch]\): 位置 \(i\)之后,字母 \(ch\)的位置。实现ch的匹配问题
#include<iostream>
#include<cstring>
using namespace std;
const int MAXN = 200005;
char s[MAXN], t[60];
int nxt[MAXN][30], w[30], pos[MAXN];int main() {scanf("%s",s+1);scanf("%s",t+1);int ls = strlen(s + 1);int lt = strlen(t + 1);// 初始化:字符不存在时,位置为ls+1(越界标记)for (int i=1;i<=26;i++) w[i]=ls+1;for (int i=ls;i>=0;i--) {for (int j=1;j<=26;j++) nxt[i][j]=w[j];w[s[i]-'a'+1]=i; // 仅更新有效字符的位置}// 计算每个左端点 i 的最小右端点pos[i]for (int i=0;i<ls;i++) {int j=i;for (int k=1;j<=ls && k<=lt;k++) {j = nxt[j][ t[k] - 'a' + 1 ];}pos[i+1]=j;}// 统计long long Ans=0;for (int i=1;i<=ls;i++) Ans += pos[i] - i;cout<<Ans<<endl;return 0;
}
http://www.jsqmd.com/news/640348/

相关文章:

  • 2026 三重四极杆ICP-MS厂家有哪些,哪个口碑好实力强?进口电感耦合等离子体质谱仪推荐品牌 - 品牌推荐大师1
  • 【数据库】索引创建原则、索引失效以及sql优化
  • Proxmox VE管理神器:pvetools一键脚本让你的虚拟化运维效率翻倍
  • 2000-2023年各省农用塑料薄膜使用量和农用柴油和农药使用量数据
  • 毕业论文“终局之战”:百考通AI,如何用“查降一体”思维助你高效通关?
  • 工业储罐厂家推荐与采购指南(2026 深度选型版) - 深度智识库
  • 全文降AI的技术原理解读:工具是怎么做到整篇降率的 - 我要发一区
  • 全文降AI的好处:从知网检测算法角度解读为什么要全文处理 - 我要发一区
  • 突破Cursor Pro限制:三步实现无限使用的开源解决方案
  • LaTeX术语表(nomencl)从入门到精通:解决排序混乱、编译失败的常见坑点指南
  • 5分钟快速上手:Blender PSK/PSA插件终极指南
  • 2025网盘下载终极解决方案:八大平台直链解析助手完整使用指南
  • FanControl终极配置指南:5分钟掌握Windows风扇控制神器
  • 第一篇:微信云开发宠物上门预约小程序:核心架构与实现思路
  • 2026年户外路灯厂家推荐:市政路灯/农村用太阳能路灯/双臂路灯专业供应商精选 - 品牌推荐官
  • Ubuntu下Forge服务器session.lock锁文件残留导致MC1.21.1启动失败的排查与解决
  • js逆向05_ob混淆花指令,平坦流,某麦网(突破ob混淆寻找拦截器)
  • CVPR 2025|渐进聚焦注意力:重塑Transformer超分效率,实现高精度与低开销的平衡
  • 【OSG学习笔记】Day 45: osg::Camera::DrawCallback (抓取图片)
  • 阿里的1000亿美金野心与美团的243亿亏损阴影
  • 英雄联盟智能助手:League Akari 终极使用指南
  • FUTURE POLICE语音模型Ubuntu 20.04部署全流程详解
  • 微信小程序文件缓存优化:从基础到高级的完整实践指南
  • Agent智能体任务规划文档解析:BERT分割理解复杂指令步骤
  • 不务正业系列9:用A-Frame构建你的第一个WebVR互动场景
  • 【OSG学习笔记】Day 46: CameraManipulator(相机操控器)
  • 运营策划到底在做什么?它和“打杂”的区别,这篇文章说透了
  • OpenIPC固件实战:让GK7205V200摄像头支持1080P@60fps,解锁高帧率玩法
  • ECharts 从版本4升级到版本5的实战指南与常见问题解析
  • 深度解析League Akari:基于LCU API的模块化英雄联盟客户端工具集架构