Codeforces Round #685 (Div. 2) Problem - B. Non-Substring Subsequence 题解
题目
题目链接
Codeforces Round #685 (Div. 2) Problem - B. Non-Substring Subsequence
题目大意
现在有一个字符串s,s的长度为n,s[l...r]表示s的一个子串。
有q次查询,每次查询给出l与r,求s中是否有非连续的子串是与s[l...r]相等的。
输入
第一行输入测试情况数量t(1<=t<=100)
每个测试情况的第一行包含2个整数n(2<=n<=100)与q(1<=q<=100)
第二行为字符串s
第三行开始,每行有两个整数l,r(1<=l,r<=n),共有q行
样例输入
2
6 3
001000
2 4
1 3
3 5
4 2
1111
1 4
2 3
样例输出
YES
NO
YES
NO
YES
题解
- 查找在l之前有没有与s[l]相同的
- 查找在r之后有没有与s[r]相同的。
如果都没有,则说明不存在。
如果其中一项有,则说明存在。
Then show the code.
#include <stdio.h>
char bstr[200];
int t, n, q, l, r;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d", &n, &q);
scanf("%s", &bstr[1]);
while(q--){
int flag = 0;
scanf("%d%d", &l, &r);
for(int i=1; i<l; i++){
if(bstr[i] == bstr[l])
flag = 1;
if(flag) break;
}
for(int i=n; i>r; i--){
if(bstr[i] == bstr[r])
flag = 1;
if(flag) break;
}
if(flag) printf("YES\n");
else printf("NO\n");
}
}
return 0;
}
不忘初心方得始终