U175023.拼接乌托邦
提高+/省选-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
题目背景
至少我还在为你而歌唱,在黑暗漫长的反乌托邦。
《拼接乌托邦》是拼接了《反乌托邦 pt2》与《拼接遗憾》两首歌而成的曲子。
现在你拿到了这首歌的完整主旋律歌词串,以及若干段歌词碎片。你可以按给定顺序选择或者不选择每一块碎片,把选中的碎片首尾相接拼在一起。
求拼出来的字符串,和完整主旋律歌词串的最长公共前缀长度。
题目描述
给定一个主旋律字符串 S(完整歌词),再给出 n 块歌词碎片 (T_1,T_2,\dots,T_n)。
你必须保持碎片原本的先后顺序,每一块碎片二选一:选它或者跳过它。选中的碎片直接拼接,不能切割碎片内部字符。
设拼接得到的字符串为 P,请你求出 P 与 S 的最长公共前缀的长度。
规则:
- 碎片顺序不可打乱;
- 碎片不能切开,要选就整块加入;
- 一旦在某块碎片里字符匹配失败,这块碎片剩下的字符全部作废,不能继续匹配;
- 如果已经匹配完整个主旋律 S,后续碎片无需处理。
输入格式
至少我还在为你而歌唱
3
至少我
还在为你
黑暗漫长
输出格式
8
输入输出样例
输入#1
至少我还在为你而歌唱 3 至少我 还在为你 黑暗漫长
输出#1
8
输入#2
在黑暗漫长的反乌托邦 2 天空和地球 在黑暗
输出#2
4
说明/提示
数据范围
(1\le |S| \le 10^5)
(1\le n \le 10^5)
(\sum |T_i| \le 10^5)
字符串仅包含中文汉字(每个汉字当作单个字符处理)
时限:1s
内存:256MB
提示
维护一个指针 pos,记录当前已经匹配到主旋律的第 pos 位。依次遍历碎片,逐个字符比对,匹配成功指针后移;一旦失配,直接结束当前碎片的比对。
输入解题思路,AI测评打分。不知道怎么写?