QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#734369 | #4894. 学姐买瓜 | NineSuns | 20 | 21ms | 8028kb | C++14 | 2.1kb | 2024-11-11 09:28:48 | 2024-11-11 09:28:48 |
Judging History
answer
#include <bits/stdc++.h>
#define pii pair <int, int>
#define fi first
#define se second
using namespace std;
const int N = 3e5+5, B = 555, b = 517, inf = 0x3f3f3f3f;
int n, m, nxt[N], nb[N], d[N], rk[N], lb[B], rb[B], o[B], od[B];
set <pii> st;
void reset (int bi, int l, int r, int k) {
if (o[bi]) {
for (int j = rb[bi];j >= lb[bi];j--) nxt[j] = od[bi], d[j] = 1;
o[bi] = 0;
}
for (int j = l;j <= r;j++) nxt[j] = k;
for (int j = r;j >= lb[bi];j--) {
if (nxt[j] > rb[bi]) nb[j] = nxt[j], d[j] = 1;
else nb[j] = nb[nxt[j]], d[j] = d[nxt[j]]+1;
}
}
void upd (int l, int r, int k) {
// cout << "MODIFY:" << l << " " << r << " " << k << endl;
int bl = rk[l], br = rk[r];
if (bl == br) {
return reset(bl, l, r, k);
}
reset(bl, l, rb[bl], k); reset(br, lb[br], r, k);
for (int j = bl+1;j < br;j++) o[j] = 1, od[j] = k;
}
int getd (int l, int r) {
int k = 0;
while (1) {
if (o[rk[l]]) {
if (od[rk[l]] > r+1) break;
k++; l = od[rk[l]];
}
else {
if (nb[l] > r+1) break;
k += d[l]; l = nb[l];
}
}
while (1) {
if (o[rk[l]]) {
if (od[rk[l]] > r+1) break;
k++; l = od[rk[l]];
}
else {
if (nxt[l] > r+1) break;
k++; l = nxt[l];
}
}
return k;
}
int main () {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> m >> n;
for (int i = 1; ;i++) {
lb[i] = rb[i-1]+1; rb[i] = min(n, rb[i-1]+b);
for (int j = lb[i];j <= rb[i];j++) rk[j] = i;
if (rb[i] == n) break;
}
for (int i = 1;i <= n+1;i++) nxt[i] = nb[i] = inf;
while (m--) {
int o, l, r; cin >> o >> l >> r;
if (o == 1) {
auto it = st.upper_bound({r+1, 0});
if (it != st.begin()) {
--it;
if ((*it).se >= l) continue;
}
while (1) {
auto it = st.upper_bound({r, 0});
if (it == st.end()) break;
if ((*it).se <= l) st.erase(it); else break;
}
st.insert({r, l});
it = st.lower_bound({r, l}); auto nx = st.upper_bound({r, l});
upd(it == st.begin() ? 1 : (*--it).se+1, l, r+1);
}
else {
cout << getd(l, r) << '\n';
}
}
return 0;
}
詳細信息
Subtask #1:
score: 20
Accepted
Test #1:
score: 20
Accepted
time: 1ms
memory: 7764kb
input:
11 13 2 4 4 1 11 12 1 1 5 1 2 3 1 2 10 2 2 8 1 6 6 2 2 10 1 6 11 2 2 3 2 2 13
output:
0 1 2 1 3
result:
ok 5 lines
Test #2:
score: 20
Accepted
time: 1ms
memory: 7688kb
input:
2000 2000 2 66 273 1 475 1570 2 51 958 2 731 1771 1 1286 1627 1 37 892 1 529 890 2 155 1486 1 87 1815 1 576 1872 2 1269 1515 2 1521 1794 2 634 1887 2 204 1668 1 351 1679 2 1571 1599 1 243 681 2 1 2000 2 1 2000 2 564 648 2 1215 1807 2 466 1617 1 1119 1348 1 497 886 2 1358 1487 2 173 1974 1 401 1294 2...
output:
0 0 0 1 0 0 1 2 0 2 2 0 1 1 0 2 1 1 0 1 0 1 0 0 1 2 1 1 1 2 1 1 0 0 2 2 0 2 2 0 1 3 0 0 4 0 0 2 2 5 2 0 4 0 2 0 2 3 3 0 0 1 3 2 0 3 6 1 0 1 1 4 0 8 0 8 1 3 1 8 1 4 9 2 2 0 4 5 2 9 3 0 9 1 3 8 9 1 0 7 0 8 5 7 0 1 0 6 10 2 6 0 1 0 6 4 6 5 4 4 4 0 10 0 6 2 8 9 1 10 5 7 8 10 1 10 8 5 2 6 1 5 10 8 10 5 3...
result:
ok 1020 lines
Test #3:
score: 20
Accepted
time: 1ms
memory: 7764kb
input:
2000 2000 2 66 273 1 475 1570 2 51 958 2 731 1771 1 1286 1627 1 37 892 1 529 890 2 155 1486 1 87 1815 1 576 1872 2 1269 1515 2 1521 1794 2 634 1887 2 204 1668 1 351 1679 2 1571 1599 1 243 681 2 1 2000 2 1 2000 2 564 648 2 1215 1807 2 466 1617 1 1119 1348 1 497 886 2 1358 1487 2 173 1974 1 401 1294 2...
output:
0 0 0 1 0 0 1 2 0 2 2 0 1 1 0 2 1 1 0 1 0 1 0 0 1 2 1 1 1 2 1 1 0 0 2 2 0 2 2 0 1 3 0 0 4 0 0 2 2 5 2 0 4 0 2 0 2 3 3 0 0 1 3 2 0 3 6 1 0 1 1 4 0 8 0 8 1 3 1 8 1 4 9 2 2 0 4 5 2 9 3 0 9 1 3 8 9 1 0 7 0 8 5 7 0 1 0 6 10 2 6 0 1 0 6 4 6 5 4 4 4 0 10 0 6 2 8 9 1 10 5 7 8 10 1 10 8 5 2 6 1 5 10 8 10 5 3...
result:
ok 1020 lines
Test #4:
score: 20
Accepted
time: 1ms
memory: 5664kb
input:
14 11 1 1 8 1 4 11 2 4 8 1 2 7 1 7 11 2 2 9 1 6 10 1 2 6 1 8 10 1 2 6 2 9 10 1 9 9 1 3 10 1 2 4
output:
0 1 0
result:
ok 3 lines
Test #5:
score: 20
Accepted
time: 0ms
memory: 7828kb
input:
2000 2000 1 1589 1640 1 1741 1765 2 191 1596 1 426 493 2 1434 1606 1 925 955 2 589 1148 2 1347 1608 2 686 1516 1 1535 1563 1 1835 1841 1 1513 1537 2 30 1710 2 123 171 2 1 2000 2 128 1310 2 270 879 1 1918 1941 2 965 1951 2 176 1452 1 1391 1421 1 614 664 2 1 2000 1 296 328 1 1378 1402 1 29 47 1 92 123...
output:
0 0 1 0 1 4 0 6 2 1 5 2 9 12 4 0 6 14 3 3 0 1 13 3 6 19 13 20 1 4 2 10 1 5 4 8 3 5 24 18 9 17 13 0 28 22 4 6 13 1 13 4 15 5 2 16 1 33 25 16 18 17 8 17 23 36 22 27 9 23 9 7 17 2 12 16 39 11 32 40 4 10 15 23 21 14 10 15 6 43 17 3 17 0 1 15 14 29 33 8 44 44 5 10 27 22 11 6 23 0 7 24 14 24 1 9 36 15 39 ...
result:
ok 1000 lines
Test #6:
score: 20
Accepted
time: 0ms
memory: 5788kb
input:
2000 2000 1 1589 1640 1 1741 1765 2 191 1596 1 426 493 2 1434 1606 1 925 955 2 589 1148 2 1347 1608 2 686 1516 1 1535 1563 1 1835 1841 1 1513 1537 2 30 1710 2 123 171 2 1 2000 2 128 1310 2 270 879 1 1918 1941 2 965 1951 2 176 1452 1 1391 1421 1 614 664 2 1 2000 1 296 328 1 1378 1402 1 29 47 1 92 123...
output:
0 0 1 0 1 4 0 6 2 1 5 2 9 12 4 0 6 14 3 3 0 1 13 3 6 19 13 20 1 4 2 10 1 5 4 8 3 5 24 18 9 17 13 0 28 22 4 6 13 1 13 4 15 5 2 16 1 33 25 16 18 17 8 17 23 36 22 27 9 23 9 7 17 2 12 16 39 11 32 40 4 10 15 23 21 14 10 15 6 43 17 3 17 0 1 15 14 29 33 8 44 44 5 10 27 22 11 6 23 0 7 24 14 24 1 9 36 15 39 ...
result:
ok 1000 lines
Test #7:
score: 20
Accepted
time: 1ms
memory: 5756kb
input:
2000 2000 2 100 273 1 1901 1904 2 51 958 2 731 1771 1 1772 1775 1 375 378 1 540 543 1 649 652 1 129 132 2 139 286 2 155 1490 2 87 1279 1 547 550 2 1135 1365 1 1685 1688 2 470 1269 2 1521 1540 2 62 634 2 1186 1668 1 1276 1279 1 725 728 2 1571 1599 1 246 249 2 243 681 1 103 106 1 547 550 2 324 361 2 5...
output:
0 0 0 0 3 4 0 3 0 4 0 0 5 0 6 1 8 0 2 1 11 3 1 5 15 6 1 18 1 5 0 1 4 22 8 5 24 17 8 26 0 6 27 4 17 14 29 3 40 15 30 23 13 6 13 10 18 2 33 9 31 47 12 0 48 4 27 2 3 10 6 52 15 1 17 7 9 58 15 7 9 37 17 2 27 4 13 57 32 21 43 66 16 49 10 6 0 26 25 51 42 13 26 5 82 4 82 13 14 13 5 48 8 38 94 15 23 3 39 38...
result:
ok 990 lines
Test #8:
score: 20
Accepted
time: 1ms
memory: 5776kb
input:
2000 2000 2 100 273 1 1901 1904 2 51 958 2 731 1771 1 1772 1775 1 375 378 1 540 543 1 649 652 1 129 132 2 139 286 2 155 1490 2 87 1279 1 547 550 2 1135 1365 1 1685 1688 2 470 1269 2 1521 1540 2 62 634 2 1186 1668 1 1276 1279 1 725 728 2 1571 1599 1 246 249 2 243 681 1 103 106 1 547 550 2 324 361 2 5...
output:
0 0 0 0 3 4 0 3 0 4 0 0 5 0 6 1 8 0 2 1 11 3 1 5 15 6 1 18 1 5 0 1 4 22 8 5 24 17 8 26 0 6 27 4 17 14 29 3 40 15 30 23 13 6 13 10 18 2 33 9 31 47 12 0 48 4 27 2 3 10 6 52 15 1 17 7 9 58 15 7 9 37 17 2 27 4 13 57 32 21 43 66 16 49 10 6 0 26 25 51 42 13 26 5 82 4 82 13 14 13 5 48 8 38 94 15 23 3 39 38...
result:
ok 990 lines
Test #9:
score: 20
Accepted
time: 2ms
memory: 7808kb
input:
2000 2000 2 100 273 1 1901 1904 2 51 958 2 731 1771 1 1772 1775 1 375 378 1 540 543 1 649 652 1 129 132 2 139 286 2 155 1490 2 87 1279 1 547 550 2 1135 1365 1 1685 1688 2 470 1269 2 1521 1540 2 62 634 2 1186 1668 1 1276 1279 1 725 728 2 1571 1599 1 246 249 2 243 681 1 103 106 1 547 550 2 324 361 2 5...
output:
0 0 0 0 3 4 0 3 0 4 0 0 5 0 6 1 8 0 2 1 11 3 1 5 15 6 1 18 1 5 0 1 4 22 8 5 24 17 8 26 0 6 27 4 17 14 29 3 40 15 30 23 13 6 13 10 18 2 33 9 31 47 12 0 48 4 27 2 3 10 6 52 15 1 17 7 9 58 15 7 9 37 17 2 27 4 13 57 32 21 43 66 16 49 10 6 0 26 25 51 42 13 26 5 82 4 82 13 14 13 5 48 8 38 94 15 23 3 39 38...
result:
ok 990 lines
Test #10:
score: 20
Accepted
time: 2ms
memory: 7740kb
input:
2000 2000 2 66 273 1 1 501 1 2 502 2 51 70 1 3 503 2 731 1771 1 4 504 2 149 1627 2 1792 1849 1 5 505 2 139 286 2 155 1490 2 87 1279 1 6 506 2 816 1365 2 576 783 2 1269 1515 2 1521 1794 2 634 1887 2 204 1668 1 7 507 1 8 508 1 9 509 2 1571 1599 1 10 510 2 1 2000 2 1 2000 2 1 2000 2 564 648 2 1215 1807...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ...
result:
ok 1004 lines
Test #11:
score: 20
Accepted
time: 0ms
memory: 5708kb
input:
2000 2000 2 66 273 1 1 501 1 2 502 2 51 70 1 3 503 2 731 1771 1 4 504 2 149 1627 2 1792 1849 1 5 505 2 139 286 2 155 1490 2 87 1279 1 6 506 2 816 1365 2 576 783 2 1269 1515 2 1521 1794 2 634 1887 2 204 1668 1 7 507 1 8 508 1 9 509 2 1571 1599 1 10 510 2 1 2000 2 1 2000 2 1 2000 2 564 648 2 1215 1807...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ...
result:
ok 1004 lines
Test #12:
score: 20
Accepted
time: 0ms
memory: 7728kb
input:
2000 2000 2 87 1924 1 1223 1268 2 64 1968 1 426 493 2 27 1931 1 1191 1226 2 86 1985 1 1742 1771 2 81 1984 1 631 677 1 792 813 2 32 1936 2 63 1954 2 56 1952 2 4 1937 1 1095 1117 1 781 797 1 1036 1052 1 144 174 1 999 1027 2 43 1911 2 49 1995 1 326 363 1 1580 1627 1 270 303 1 1010 1037 1 687 728 1 1895...
output:
0 1 2 2 3 5 5 5 5 9 9 14 14 14 14 15 15 16 15 15 17 15 15 18 17 17 18 20 19 19 20 20 19 20 20 20 20 20 20 20 21 20 22 23 22 24 25 22 24 24 24 23 26 27 25 27 28 29 28 27 30 30 30 27 29 29 28 30 31 30 31 31 30 29 32 30 33 31 34 33 13 35 33 35 31 32 32 33 31 32 32 33 35 35 36 34 36 35 36 34 38 36 36 35...
result:
ok 1000 lines
Test #13:
score: 20
Accepted
time: 0ms
memory: 5716kb
input:
2000 2000 2 87 1924 1 1223 1268 2 64 1968 1 426 493 2 27 1931 1 1191 1226 2 86 1985 1 1742 1771 2 81 1984 1 631 677 1 792 813 2 32 1936 2 63 1954 2 56 1952 2 4 1937 1 1095 1117 1 781 797 1 1036 1052 1 144 174 1 999 1027 2 43 1911 2 49 1995 1 326 363 1 1580 1627 1 270 303 1 1010 1037 1 687 728 1 1895...
output:
0 1 2 2 3 5 5 5 5 9 9 14 14 14 14 15 15 16 15 15 17 15 15 18 17 17 18 20 19 19 20 20 19 20 20 20 20 20 20 20 21 20 22 23 22 24 25 22 24 24 24 23 26 27 25 27 28 29 28 27 30 30 30 27 29 29 28 30 31 30 31 31 30 29 32 30 33 31 34 33 13 35 33 35 31 32 32 33 31 32 32 33 35 35 36 34 36 35 36 34 38 36 36 35...
result:
ok 1000 lines
Test #14:
score: 20
Accepted
time: 1ms
memory: 5712kb
input:
2000 2000 2 87 1924 1 1223 1268 2 64 1968 1 426 493 2 27 1931 1 1191 1226 2 86 1985 1 1742 1771 2 81 1984 1 631 677 1 792 813 2 32 1936 2 63 1954 2 56 1952 2 4 1937 1 1095 1117 1 781 797 1 1036 1052 1 144 174 1 999 1027 2 43 1911 2 49 1995 1 326 363 1 1580 1627 1 270 303 1 1010 1037 1 687 728 1 1895...
output:
0 1 2 2 3 5 5 5 5 9 9 14 14 14 14 15 15 16 15 15 17 15 15 18 17 17 18 20 19 19 20 20 19 20 20 20 20 20 20 20 21 20 22 23 22 24 25 22 24 24 24 23 26 27 25 27 28 29 28 27 30 30 30 27 29 29 28 30 31 30 31 31 30 29 32 30 33 31 34 33 13 35 33 35 31 32 32 33 31 32 32 33 35 35 36 34 36 35 36 34 38 36 36 35...
result:
ok 1000 lines
Test #15:
score: 20
Accepted
time: 1ms
memory: 5684kb
input:
12 11 2 4 5 2 2 10 1 3 7 1 4 7 1 5 11 1 5 7 2 1 3 1 1 4 2 3 3 2 11 11 1 1 10 2 10 11
output:
0 0 0 0 0 0
result:
ok 6 lines
Subtask #2:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #16:
score: 0
Wrong Answer
time: 21ms
memory: 8028kb
input:
80000 80000 2 14017 46708 2 26100 26240 2 3855 12007 2 72192 75052 1 12615 30948 2 36 51149 1 47528 79363 1 68506 72310 1 31635 62123 2 7480 77998 1 52530 75803 2 1793 30290 2 47012 72210 1 63304 66834 1 24988 62161 1 34585 61735 1 2973 61060 2 23879 44146 2 11903 26606 2 11536 72847 1 47874 65933 1...
output:
0 0 0 0 1 3 0 0 0 0 4 2 0 0 0 0 2 0 0 1 0 1 1 4 0 6 1 1 3 1 1 0 6 6 0 1 1 4 1 4 6 3 0 4 4 0 4 0 4 5 7 4 7 5 5 2 9 5 5 2 10 1 1 0 1 0 3 8 0 11 2 0 8 5 5 3 11 5 11 4 4 3 0 2 6 5 9 4 6 5 2 0 0 0 7 5 0 4 0 2 13 0 5 7 7 5 5 2 6 0 14 0 0 3 4 4 7 7 2 4 3 8 2 1 15 7 7 7 0 12 5 10 0 5 5 5 6 7 12 1 16 3 2 0 2...
result:
wrong answer 811th lines differ - expected: '16', found: '15'
Subtask #3:
score: 0
Skipped
Dependency #2:
0%