- 【模板】字符串哈希
参考代码
- @ 2026-2-5 9:52:03
string s;
const int N = 1e5 + 10;
ull base = 13331;
ull h[N], p[N];
ull get(int l, int r) {
return h[r] - h[l - 1] * p[r - l + 1];
}
void solve() {
int n, m;
cin >> n >> m;
cin >> s;
s = '*' + s;
for (int i = 1; i <= n; i++) {
h[i] = h[i - 1] * base + s[i];
}
p[0] = 1;
for (int i = 1; i <= n; i++) {
p[i] = p[i - 1] * base;
}
while (m--) {
int l, r, x, y;
cin >> l >> r >> x >> y;
ull h1 = get(l, r), h2 = get(x, y);
if (h1 == h2) {
cout << "Yes\n";
} else {
cout << "No\n";
}
}
}
0 条评论
目前还没有评论...
信息
- ID
- 412
- 时间
- ms
- 内存
- MiB
- 难度
- 7
- 标签
- 递交数
- 57
- 已通过
- 15
- 上传者