Oj.Nbdp.Net
初赛题库
问题
状态
排名
团队
题解
课程
Login
问题 5315 --字符串匹配
5315: 字符串匹配
警告!
题目
状态
题解
题目描述
对于一个字符集大小为 $C$ 的字符串 $P$,我们可以将任意两种字符在 $P$ 中的位置进行互换,例如 P=`abcba`,我们交换`a`,`b`就变为`bacab`,交换`a`,`d`就变为`dbcbd`,交换可以进行任意次。若交换后$P$ 变为了字符串 $Q$,则我们称 $P$ 与 $Q$ 是匹配的。 现在给定两个字符集大小为 $C$ 的字符串 $S,T$,请你求出 $S$ 中有多少个连续子串与 $T$ 是匹配的。
输入
第一行两个整数 $Case,C$ 表示数据组数与字符集大小。字符用 $1 \sim C$ 的整数来表示。 每组数据第一行两个整数 $n,m$ 表示 $S$ 的长度与 $T$ 的长度。 第二行 $n$ 个正整数表示$S$ 。 第三行 $m$ 个正整数表示 $T$ 。
输出
对于每组数据输出两行。 第一行一个正整数$ans$ ,表示 $S$ 中有多少个连续子串与$T$匹配。 接下来一行从小到大输出 $ans$ 个整数,表示 $S$ 中与 $T$ 匹配的连续子串的首位置。
样例输入输出
输入#1
复制
3 3 6 3 1 2 1 2 3 2 3 1 3 6 3 1 2 1 2 1 2 3 1 3 6 3 1 1 2 1 2 1 3 1 3
输出#1
复制
3 1 2 4 4 1 2 3 4 3 2 3 4
提示
对于 $10\%$ 的数据,$n,m,C \leq 1000$。 另有 $20\%$ 的数据,$n,m \leq 10^5$,$C \leq 40$。 另有 $30\%$ 的数据,$n,m,C \leq 10^5$。 对于 $100\%$ 的数据,$n,m,C \leq 10^6$,$case=3$。
发表题解
序号
标题
作者
发表时间
费用
订购数
操作
题目信息
提交
难度
未评定
标签
KMP
点击显示
if ($pr_flag) { ?>
递交数
1
已通过
1
} ;?>
通过率
100%
时间限制
1 秒
内存限制
128 MB
来源
收藏
标签云
模拟
数学与数论
动态规划
贪心
字符串
排序
枚举
数组与串
深搜
高精度
循环结构
递推
递归
二分三分
宽搜
背包
质数
线段树
分治
N进制
图论
队列
最短路
堆
树
并查集
栈
状态压缩
分支结构
几何
博弈论
生成树
顺序结构
离散化
hash表
位运算
单调队列
树状数组
KMP
字典树
二分图
数学期望
AC自动机
树链剖分
差分约束
数位动态规划
函数与过程
网络流
单调栈
前缀和