#P4355. 【双指针7】X不喜欢Y

【双指针7】X不喜欢Y

本题为2025年9月13日滴滴机考原题

滴滴机考的介绍点击这里

题目内容

小钟有一个长度为 nn 的全部由大写英文字母组成的字符用 ss 。然而,这 2626 个英文字母之间并不总是和谐相处的,

mm 对字母之间存在矛盾,分别表示为 (ch1,1,ch1,2),(ch2,1,ch2,2),,(chm,1,chm,2)\left(c h_{1,1}, c h_{1,2}\right),\left(c h_{2,1}, c h_{2,2}\right), \ldots,\left(c h_{m, 1}, c h_{m, 2}\right)

对于某字符用 tt ,当且仅当任意两个字符之间不存在矛盾,则称该字符是和谐的。

小钟想问你,ss 的所有连续非空子串中,有多少子串是和谐的?

注意,两个子串不同,当且仅当两个子串在字符串中出现的位置不同。

例如,对于字符串 s=AAAAS1,2=AAs=AAAA,S_{1,2}=AAs2,3=AAs_{2,3}=AA 视为不同的子串。

输入描述

第一行有两个整数 n(1n2105)n(1≤n≤2*10^5)m(0m500)m(0≤m≤500) ,分别表示字符串 ss 的长度和存在矛盾的字符对的个数。

第二行有一行字符串 ss

接下来 mm 行第 ii 行有两个字符 chi,1chi,2ch_{i,1}、ch_{i,2} ,表示字符 chi,1ch_{i,1} 与字符 chi,2ch_{i,2} 之间存在矛盾。

保证任何字符不会与自己产生矛盾。矛盾关系可能出现重复。

输出描述

输出一个数字,表示 ss 的多少连续子串是和谐的。

样例1

输入

4 1
ACBA
A B

输出

6

说明

样例中一共有 1010 个子串:ACBAACCBBAACBCBAACBAA、C、B、A、AC、CB、BA、ACB、CBA、ACBA ,其中共有 66 个子串满足不同时出现 AABB