题目名称 | 3923. 切分子串 |
---|---|
输入输出 | cutstring.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | yrtiop 于2023-10-18加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:8, 提交:18, 通过率:44.44% | ||||
UGFK | 100 | 0.000 s | 0.00 MiB | C++ |
蜀山鸭梨大 | 100 | 0.000 s | 0.00 MiB | C++ |
张通 | 100 | 0.000 s | 0.00 MiB | C++ |
高一女王wfr | 100 | 0.000 s | 0.00 MiB | C++ |
李奇文 | 100 | 0.000 s | 0.00 MiB | C++ |
Untitled | 100 | 0.000 s | 0.00 MiB | C++ |
Lixj | 100 | 0.000 s | 0.00 MiB | C++ |
高一女王wfr | 100 | 0.059 s | 3.34 MiB | C++ |
UGFK | 0 | 0.000 s | 0.00 MiB | C++ |
高一女王wfr | 0 | 0.000 s | 0.00 MiB | C++ |
本题关联比赛 | |||
CSP2023-J模拟赛 | |||
CSP2023-J模拟赛 |
关于 切分子串 的近10条评论(全部评论) |
---|
给定两个字符串 $S, T$,求有多少种将 $T$ 拆分为两个子串 $t_1,t_2$ 的方法,满足 $t_1$ 是 $T$ 的一段非空前缀,$t_2$ 是 $T$ 的一段非空后缀,$|t_1|+|t_2|=|T|$,且 $t_1,t_2$ 均在 $S$ 中出现过。
以下注解默认字符串下标从 $1$ 开始。
$|S|$ 表示字符串 $S$ 的长度。
$t$ 为 $T$ 的一段非空前缀,当且仅当 $1\le |t|\le |T|$,且对于任意 $i\in [1, |t|]$,都满足 $t_i=T_i$。
$t$ 为 $T$ 的一段非空后缀,当且仅当 $1\le |t|\le |T|$,且对于任意 $i\in [1,|t|]$,都满足 $t_i=T_{|T|-i+1}$。
$s$ 在 $S$ 中出现过,当且仅当 $1\le |s|\le |S|$,且存在一个整数 $i\in [1,|S|-|s|+1]$,满足对于任意 $j\in [1, |s|]$,都有 $s_j = S_{i+j-1}$。
(仍然有问题,可以参考样例说明理解。)
两行,分别包含两个由小写字母组成的字符串,表示 $S, T$。
一个整数,表示答案。
abaaaabccaaac abaaac
4
$\rm abaaac$ 有五种拆分的方式:$\rm a+baaac$、$\rm ab+aaac$、$\rm aba+aac$、$\rm abaa+ac$、$\rm abaaa+c$。其中 $\rm baaac$ 没有在 $S$ 中出现过,所以第一种方案不合法。于是有 4 种合法的拆分。
对于 $100\%$ 的数据,满足 $1\le |S|\le 2000, 1\le |T|\le 150$。
璃月港算法竞赛 T1.