2026/4/18 9:12:40
网站建设
项目流程
九江集团网站建设,html5网站正在建设中,彩票的网站怎么做,大连企业招聘网站题目描述很久很久以前#xff0c;森林里住着一群兔子。有一天#xff0c;兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列#xff08;小兔子是外星生物#xff0c;DNA 序列可能包含 26 个小写英文字母#xff09;。然后我们每次选择两个区间#xf…题目描述很久很久以前森林里住着一群兔子。有一天兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列小兔子是外星生物DNA 序列可能包含 26 个小写英文字母。然后我们每次选择两个区间询问如果用两个区间里的 DNA 序列分别生产出来两只兔子这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。输入格式第一行输入一个 DNA 字符串 S。第二行一个数字 m表示 m 次询问。接下来 m 行每行四个数字 l1,r1,l2,r2分别表示此次询问的两个区间注意字符串的位置从 1 开始编号。输出格式对于每次询问输出一行表示结果。如果两只兔子完全相同输出Yes否则输出No注意大小写。输入输出样例输入 #1复制aabbaabb 3 1 3 5 7 1 3 6 8 1 2 1 2输出 #1复制Yes No Yes说明/提示数据保证1≤∣S∣,m≤106。其中∣S∣ 为字符串 S 的长度。#includebits/stdc.h using namespace std; const int N1e610,P13331; string s; typedef unsigned long long ULL; ULL f[N];//字符串哈希数组 ULL p[N];//P的i次方 int n,m; void init_hash() { p[0]1; for(int i1;in;i) { f[i]f[i-1]*Ps[i]; p[i]p[i-1]*P; } } ULL get_hash(ULL l,ULL r) { return f[r]-f[l-1]*p[r-l1]; } int main() { cins; ns.size(); s s; cinm; init_hash(); while(m--) { ULL l1,r1,l2,r2; cinl1r1l2r2; if(get_hash(l1,r1)get_hash(l2,r2)) { coutYesendl; }else{ coutNoendl; } } return 0; }