CF985F.Isomorphic Strings

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string ss of length nn consisting of lowercase English letters.

For two given strings ss and tt , say SS is the set of distinct characters of ss and TT is the set of distinct characters of tt . The strings ss and tt are isomorphic if their lengths are equal and there is a one-to-one mapping (bijection) ff between SS and TT for which f(si)=tif(s_{i})=t_{i} . Formally:

  1. f(si)=tif(s_{i})=t_{i} for any index ii ,
  2. for any character there is exactly one character that f(x)=yf(x)=y ,
  3. for any character there is exactly one character that f(x)=yf(x)=y .

For example, the strings "aababc" and "bbcbcz" are isomorphic. Also the strings "aaaww" and "wwwaa" are isomorphic. The following pairs of strings are not isomorphic: "aab" and "bbb", "test" and "best".

You have to handle mm queries characterized by three integers x,y,lenx,y,len ( 1<=x,y<=nlen+11<=x,y<=n-len+1 ). For each query check if two substrings s[x... x+len1]s[x...\ x+len-1] and s[y... y+len1]s[y...\ y+len-1] are isomorphic.

输入格式

The first line contains two space-separated integers nn and mm ( 1<=n<=21051<=n<=2·10^{5} , 1<=m<=21051<=m<=2·10^{5} ) — the length of the string ss and the number of queries.

The second line contains string ss consisting of nn lowercase English letters.

The following mm lines contain a single query on each line: xix_{i} , yiy_{i} and lenilen_{i} ( 1<=xi,yi<=n1<=x_{i},y_{i}<=n , 1<=leni<=nmax(xi,yi)+11<=len_{i}<=n-max(x_{i},y_{i})+1 ) — the description of the pair of the substrings to check.

输出格式

For each query in a separate line print "YES" if substrings s[xi... xi+leni1]s[x_{i}...\ x_{i}+len_{i}-1] and s[yi... yi+leni1]s[y_{i}...\ y_{i}+len_{i}-1] are isomorphic and "NO" otherwise.

输入输出样例

  • 输入#1

    7 4
    abacaba
    1 1 1
    1 4 2
    2 1 3
    2 4 3
    

    输出#1

    YES
    YES
    NO
    YES
    

说明/提示

The queries in the example are following:

  1. substrings "a" and "a" are isomorphic: f(a)=af(a)=a ;
  2. substrings "ab" and "ca" are isomorphic: f(a)=cf(a)=c , f(b)=af(b)=a ;
  3. substrings "bac" and "aba" are not isomorphic since f(b)f(b) and f(c)f(c) must be equal to aa at same time;
  4. substrings "bac" and "cab" are isomorphic: f(b)=cf(b)=c , f(a)=af(a)=a , f(c)=bf(c)=b .
首页