答案
2025-05-11 17:46:04
发布于:广东
6阅读
0回复
0点赞
#include <iostream>
using namespace std;
using ULL = unsigned long long;
const int N = 1e5 + 10, P = 131;
int n, m;
char str[N];
ULL h[N], p[N];
ULL get(int l, int r) {
return h[r] - h[l - 1] * p[r - l + 1];
}
int main() {
cin >> n >> m;
cin >> (str + 1);
p[0] = 1;
for (int i = 1; i <= n; ++i) {
h[i] = h[i - 1] * P + str[i];
p[i] = p[i - 1] * P;
}
while (m--) {
int l1, r1, l2, r2;
cin >> l1 >> r1 >> l2 >> r2;
if (get(l1, r1) == get(l2, r2)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个