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
上传者