QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#493259 | #9155. 集合 | Sham_Devour | 100 ✓ | 201ms | 18588kb | C++14 | 1.5kb | 2024-07-26 23:04:31 | 2024-07-26 23:04:31 |
Judging History
answer
#include <cstdio>
#include <iostream>
#include <random>
#include <ctime>
#define ull unsigned long long
using namespace std;
const int N = 2e5 + 5, M = 6e5 + 5;
mt19937_64 rng(time(0));
int n, m, q, pos[N];
ull msk = rng(), hsa, hsb, vala[M], valb[M];
ull shift(ull x) {
x ^= msk;
x ^= x << 13;
x ^= x >> 7;
x ^= x << 17;
x ^= msk;
return x;
}
struct node {
int x, y, z;
} a[N], b[N];
void upda(int x, int p, int op) {
hsa -= shift(vala[x]);
vala[x] += shift(p) * op;
hsa += shift(vala[x]);
}
void updb(int x, int p, int op) {
hsb -= shift(valb[x]);
valb[x] += shift(p) * op;
hsb += shift(valb[x]);
}
int main() {
scanf("%d %d %d", &n, &m, &q);
for (int i = 1; i <= n; i++) scanf("%d %d %d", &a[i].x, &a[i].y, &a[i].z);
for (int i = 1; i <= n; i++) scanf("%d %d %d", &b[i].x, &b[i].y, &b[i].z);
for (int l = 1, r = 0; l <= n; l++) {
while (r < n) {
r++;
upda(a[r].x, r, 1), upda(a[r].y, r, 1), upda(a[r].z, r, 1);
updb(b[r].x, r, 1), updb(b[r].y, r, 1), updb(b[r].z, r, 1);
if (hsa != hsb) {
upda(a[r].x, r, -1), upda(a[r].y, r, -1), upda(a[r].z, r, -1);
updb(b[r].x, r, -1), updb(b[r].y, r, -1), updb(b[r].z, r, -1);
r--;
break;
}
}
pos[l] = r;
if (l <= r) {
upda(a[l].x, l, -1), upda(a[l].y, l, -1), upda(a[l].z, l, -1);
updb(b[l].x, l, -1), updb(b[l].y, l, -1), updb(b[l].z, l, -1);
}
}
while (q--) {
int l, r;
scanf("%d %d", &l, &r);
puts(pos[l] >= r ? "Yes" : "No");
}
return 0;
}
詳細信息
Pretests
Pretest #1:
score: 5
Accepted
time: 0ms
memory: 5788kb
Pretest #2:
score: 5
Accepted
time: 1ms
memory: 5948kb
Pretest #3:
score: 5
Accepted
time: 1ms
memory: 5732kb
Pretest #4:
score: 5
Accepted
time: 1ms
memory: 5752kb
Pretest #5:
score: 5
Accepted
time: 1ms
memory: 7964kb
Pretest #6:
score: 5
Accepted
time: 1ms
memory: 5796kb
Pretest #7:
score: 5
Accepted
time: 1ms
memory: 5748kb
Pretest #8:
score: 5
Accepted
time: 0ms
memory: 7780kb
Pretest #9:
score: 5
Accepted
time: 17ms
memory: 5728kb
Pretest #10:
score: 5
Accepted
time: 21ms
memory: 5868kb
Pretest #11:
score: 5
Accepted
time: 72ms
memory: 9972kb
Pretest #12:
score: 5
Accepted
time: 82ms
memory: 9288kb
Pretest #13:
score: 5
Accepted
time: 2ms
memory: 7816kb
Pretest #14:
score: 5
Accepted
time: 0ms
memory: 8084kb
Pretest #15:
score: 5
Accepted
time: 103ms
memory: 5780kb
Pretest #16:
score: 5
Accepted
time: 104ms
memory: 6076kb
Pretest #17:
score: 5
Accepted
time: 3ms
memory: 6128kb
Pretest #18:
score: 5
Accepted
time: 9ms
memory: 11212kb
Pretest #19:
score: 5
Accepted
time: 175ms
memory: 9648kb
Pretest #20:
score: 5
Accepted
time: 201ms
memory: 18588kb
Final Tests
Test #1:
score: 5
Accepted
time: 1ms
memory: 7916kb
Test #2:
score: 5
Accepted
time: 1ms
memory: 7832kb
Test #3:
score: 5
Accepted
time: 1ms
memory: 7844kb
Test #4:
score: 5
Accepted
time: 1ms
memory: 5868kb
Test #5:
score: 5
Accepted
time: 1ms
memory: 7968kb
Test #6:
score: 5
Accepted
time: 1ms
memory: 7988kb
Test #7:
score: 5
Accepted
time: 1ms
memory: 5808kb
Test #8:
score: 5
Accepted
time: 1ms
memory: 5864kb
Test #9:
score: 5
Accepted
time: 20ms
memory: 5848kb
Test #10:
score: 5
Accepted
time: 21ms
memory: 7796kb
Test #11:
score: 5
Accepted
time: 84ms
memory: 9996kb
Test #12:
score: 5
Accepted
time: 82ms
memory: 9840kb
Test #13:
score: 5
Accepted
time: 1ms
memory: 7800kb
Test #14:
score: 5
Accepted
time: 2ms
memory: 10080kb
Test #15:
score: 5
Accepted
time: 99ms
memory: 5816kb
Test #16:
score: 5
Accepted
time: 105ms
memory: 10120kb
Test #17:
score: 5
Accepted
time: 8ms
memory: 8152kb
Test #18:
score: 5
Accepted
time: 8ms
memory: 7120kb
Test #19:
score: 5
Accepted
time: 185ms
memory: 12448kb
Test #20:
score: 5
Accepted
time: 197ms
memory: 18584kb
Extra Test:
score: 0
Extra Test Passed