QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#489945 | #8672. 排队 | daduoli | 15 | 295ms | 63548kb | C++14 | 2.8kb | 2024-07-25 09:31:13 | 2024-07-25 09:31:13 |
Judging History
answer
#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
const int MAXN=1e6+10,inf=1e8;
int n,Q;
struct ddl {
int l,r,i;
}a[MAXN],b[MAXN];
LL ans[MAXN];
struct EDG {
int opt,x,t;
};
vector<EDG> e[MAXN];
bool cmp(ddl a,ddl b) {
return a.l<b.l;
}
struct tree_array {
int tr[MAXN];
int lb(int x) {
return x&(-x);
}
void update(int x,int val) {
for(int i=x;i<=Q;i+=lb(i)) {
tr[i]+=val;
}
}
int query(int x) {
int ret=0;
for(int i=x;i;i-=lb(i)) {
ret+=tr[i];
}
return ret;
}
}T;
int rt;
struct fhq {
int ls[MAXN],rs[MAXN],sz[MAXN],lb[MAXN],val[MAXN],tot,fi[MAXN];
int insert() {
++tot;
ls[tot]=rs[tot]=lb[tot]=val[tot]=0;
sz[tot]=1; fi[tot]=rand();
return tot;
}
void psup(int u) {
sz[u]=sz[ls[u]]+sz[rs[u]]+1;
}
void zx(int u,int x) {
val[u]+=x;
lb[u]+=x;
}
void psdn(int u) {
if(lb[u]) {
zx(ls[u],lb[u]);
zx(rs[u],lb[u]);
lb[u]=0;
}
}
int merge(int x,int y) {
if(!x||!y) return x^y;
psdn(x); psdn(y);
if(fi[x]>fi[y]) {
rs[x]=merge(rs[x],y);
psup(x);
return x;
}
else {
ls[y]=merge(x,ls[y]);
psup(y);
return y;
}
}
void split(int u,int k,int &x,int &y) {
if(!u) {
x=y=0;
return ;
}
psdn(u);
if(val[u]<=k) {
split(rs[u],k,x,y);
rs[u]=x; x=u;
}
else {
split(ls[u],k,x,y);
ls[u]=y; y=u;
}
psup(u);
}
void ins() {
int li=insert();
rt=merge(li,rt);
}
void Upd(int x,int y) {
int l,mid,r;
split(rt,y,l,r);
split(l,x-1,l,mid);
zx(mid,1);
rt=merge(merge(l,mid),r);
}
int query(int u,int x) {
int sum=sz[ls[u]];
// cout<<x<<" "<<val[u]<<' '<<sum<<' '<<sz[rs[u]]<<endl;
psdn(u);
if(sum>=x) return query(ls[u],x);
if(sum+1==x) return val[u];
return query(rs[u],x-sum-1);
}
int Que(int x) {
int val=query(rt,x);
// cout<<val<<' ';
int l,mid,r;
split(rt,val,l,r);
split(l,val-1,l,mid);
mid=merge(ls[mid],rs[mid]);
rt=merge(merge(l,mid),r);
return val;
}
}F;
int main () {
scanf("%d%d",&n,&Q);
for(int i=1;i<=n;++i) {
scanf("%d%d",&a[i].l,&a[i].r);
}
for(int i=1;i<=Q;++i) {
scanf("%d%d",&b[i].l,&b[i].r);
b[i].i=i;
}
for(int i=1;i<=Q;++i) {
e[b[i].l].push_back((EDG){1,i,b[i].i});
e[b[i].r+1].push_back((EDG){-1,i,b[i].i});
}
for(int i=1;i<=n+1;++i) {
for(auto t:e[i]) {
// cout<<t.opt<<" "<<t.x<<endl;
if(t.opt==1) {
F.ins();
}
else {
// cout<<T.query(Q)-T.query(t.x-1)<<' ';
ans[t.t]=F.Que(T.query(Q)-T.query(t.x-1));
}
T.update(t.x,t.opt);
// cout<<t.x<<' ';
}
F.Upd(a[i].l,a[i].r);
// return 0;
// if(i==1) {
// cout<<F.Que(1)<<endl;
// return 0;
// }
}
for(int i=1;i<=Q;++i) {
printf("%lld\n",ans[i]);
}
return 0;
}
詳細信息
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 10
Accepted
time: 0ms
memory: 42816kb
input:
3 3 0 0 1 2 0 2 1 1 1 3 2 3
output:
1 3 1
result:
ok 3 number(s): "1 3 1"
Test #2:
score: 0
Wrong Answer
time: 4ms
memory: 43064kb
input:
5000 5000 5 10 3 9 3 8 2 7 2 5 3 6 1 5 0 2 7 8 2 10 0 3 3 6 4 6 1 6 4 8 7 8 2 7 3 4 4 9 7 8 2 9 2 5 3 6 0 5 6 7 1 2 2 4 2 10 1 5 7 9 6 9 2 3 9 10 5 5 2 9 3 3 2 7 2 4 0 6 0 3 1 7 7 7 4 8 2 9 4 8 0 10 1 8 1 1 2 7 5 9 1 7 1 7 1 4 2 4 1 4 2 9 1 7 4 7 3 8 1 3 4 6 1 5 1 6 0 0 3 9 4 7 2 8 1 8 1 2 7 8 2 7 2...
output:
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ...
result:
wrong answer 104th numbers differ - expected: '10', found: '11'
Subtask #2:
score: 15
Accepted
Test #12:
score: 15
Accepted
time: 226ms
memory: 59068kb
input:
200000 200000 3 6 3 3 6 10 1 7 2 7 6 9 4 6 3 4 0 8 0 6 3 5 3 4 1 8 7 8 4 5 0 3 1 5 2 9 1 2 1 2 3 4 5 7 6 10 3 9 4 7 1 6 2 6 1 7 2 5 1 7 6 8 1 1 0 7 7 8 0 9 1 7 3 8 3 7 1 2 4 8 5 6 0 6 5 6 2 7 2 6 0 6 0 6 1 7 2 5 0 3 0 3 7 10 3 8 0 2 3 4 3 7 4 9 0 6 4 7 2 6 8 10 2 10 4 10 3 3 2 6 4 5 3 9 1 8 1 2 2 9 ...
output:
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 ...
result:
ok 200000 numbers
Test #13:
score: 15
Accepted
time: 221ms
memory: 62720kb
input:
200000 200000 5 45 27 99 7 23 51 88 16 62 10 24 16 80 43 70 12 45 35 55 6 99 77 91 40 82 66 99 30 47 18 80 9 36 4 12 26 51 37 64 39 52 2 11 2 69 57 81 15 98 8 36 19 27 32 34 35 97 22 23 15 89 53 77 2 89 25 55 25 90 4 91 13 77 37 65 67 89 8 52 20 58 10 18 31 81 35 59 41 56 71 74 18 61 56 77 51 74 40 ...
output:
101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 0 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 10...
result:
ok 200000 numbers
Test #14:
score: 15
Accepted
time: 238ms
memory: 59756kb
input:
200000 200000 193 894 142 229 346 553 197 496 389 718 370 600 650 853 476 695 764 767 220 571 238 714 516 700 137 692 1 293 835 962 34 536 208 482 148 225 377 804 75 864 277 925 278 864 296 647 390 757 179 283 338 602 571 746 447 852 315 365 7 390 634 689 76 239 16 60 244 388 385 822 451 836 301 373...
output:
1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 961 999 1001 1001 1001 1001 1001 1001 981 1001 1001 1001 1001 1001 1001 1001 966 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001...
result:
ok 200000 numbers
Test #15:
score: 15
Accepted
time: 232ms
memory: 63416kb
input:
200000 200000 3145 7698 6037 6154 6483 6707 6834 7442 7373 9621 5166 8045 7346 8938 2235 5518 2240 4134 586 3188 3845 8054 1258 5380 2409 2631 3360 5706 19 2771 1925 9642 6687 8264 4305 8055 2844 5474 2282 7810 1738 4706 1462 7466 17 6282 2481 6022 2363 2987 3633 4157 1460 2634 4866 8159 3154 5079 2...
output:
9965 10001 0 10001 10001 10001 9991 10001 4831 9935 5274 10001 10001 2 10001 10001 10001 10001 9991 10001 10001 10001 10001 9935 9994 10001 9742 10001 10001 0 9982 10001 10001 10001 10001 10001 80 0 9991 9763 8 10001 9975 9939 10001 10001 9092 9983 9333 10001 10001 10001 10001 10001 10001 10001 9965...
result:
ok 200000 numbers
Test #16:
score: 15
Accepted
time: 252ms
memory: 62912kb
input:
200000 200000 15540 44932 12196 33126 776 23774 35673 42863 31231 44618 16521 19781 8467 9747 5319 42216 13940 21955 3389 6981 22 11576 15248 17307 5734 35942 12762 45217 30349 47977 8869 11242 11199 25942 3415 10196 20104 40771 8813 28517 29726 34188 13420 13731 17526 30474 1033 44930 3143 10541 46...
output:
8 31 33781 8 161 3 618 14580 3 25947 1415 455 2 147 16877 21598 539 56 7425 6686 4 393 4 4 4378 176 24 1407 837 19 14 7146 7 19626 21422 9 20472 0 200 3514 2 380 35942 35129 1 216 3 312 1200 2519 4046 9 1734 1318 21862 3361 27414 52 38201 2303 635 235 1 17 271 24468 29 1029 1071 38200 10968 95 4 125...
result:
ok 200000 numbers
Test #17:
score: 15
Accepted
time: 255ms
memory: 61100kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 12 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 26 0 27 0 28 0 29 0 30 0 31 0 32 0 33 0 34 0 35 0 36 0 37 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 58 0 59 ...
output:
74058 156458 175945 88572 145372 79026 163392 139232 188241 158454 17719 20452 171150 171343 104047 159458 132045 70328 136937 64711 174467 69614 125002 131739 81388 166709 80139 138489 34431 142820 179669 125831 148484 115982 184021 189596 73421 151270 194210 134276 117448 129846 127920 160607 1132...
result:
ok 200000 numbers
Test #18:
score: 15
Accepted
time: 258ms
memory: 62868kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 0 11 0 0 0 13 0 14 0 15 0 16 0 17 0 18 0 19 0 20 0 21 0 22 0 23 0 24 0 25 0 0 0 27 0 28 0 29 0 30 0 0 0 32 0 33 0 34 0 35 0 36 0 0 0 0 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 0 0 58 0 59 0 60 0...
output:
173310 165951 120854 142558 87420 163018 160623 76341 172338 95167 169845 31220 168100 132276 165092 84047 128575 138423 171800 154331 137251 163376 79848 167392 43722 41974 133487 110272 168461 91407 103766 57088 165360 154903 110464 80792 144277 102908 146051 175704 77052 168422 56979 126413 14964...
result:
ok 200000 numbers
Test #19:
score: 15
Accepted
time: 268ms
memory: 62524kb
input:
200000 200000 45 200000 27 200000 7 200000 51 200000 16 200000 10 200000 16 200000 43 200000 12 200000 35 200000 6 200000 77 200000 40 200000 66 200000 30 200000 18 200000 36 200000 12 200000 26 200000 37 200000 39 200000 11 200000 69 200000 57 200000 15 200000 8 200000 19 200000 32 200000 35 200000...
output:
131384 192629 61130 80247 87887 198740 163105 103211 176599 77117 195385 125105 27678 146598 146076 171154 143664 106375 184677 176668 63515 47861 66512 94607 61773 118863 110829 90228 162033 193193 118985 114311 63857 156350 94535 157429 67223 146494 96304 188983 139817 196687 121473 115649 160519 ...
result:
ok 200000 numbers
Test #20:
score: 15
Accepted
time: 257ms
memory: 63548kb
input:
200000 200000 6 200000 3 200000 6 200000 7 200000 2 200000 9 200000 4 200000 3 200000 0 200000 6 200000 3 200000 3 200000 1 200000 8 200000 4 200000 3 200000 5 200000 2 200000 2 200000 2 200000 4 200000 5 200000 6 200000 3 200000 7 200000 1 200000 2 200000 7 200000 2 200000 1 200000 6 200000 1 20000...
output:
191039 169762 165539 174400 68195 177129 154654 147432 156994 76044 194413 99752 191624 151075 197252 164294 18272 88957 158459 84713 87887 43439 179674 131694 123135 59410 106882 159392 139714 64645 69698 100948 140917 103251 45494 170482 166885 104101 194216 145914 120315 76168 77653 141867 198409...
result:
ok 200000 numbers
Test #21:
score: 15
Accepted
time: 246ms
memory: 60940kb
input:
200000 200000 17611 69131 59430 76978 15340 23731 45422 61357 24684 32905 12111 30945 3173 53122 1908 18775 21868 25563 43076 69772 23316 73134 37315 71711 16622 29769 5311 27384 7573 9838 45306 81042 21408 85530 32497 55253 12816 72989 13973 55180 2256 48643 39562 81719 47954 61844 8166 64533 5302 ...
output:
1 2 6 0 2 0 0 0 3 7 1 2 0 0 2 10 1 0 0 1 13 0 2 2 0 4 0 1 7 0 4 14 1 1 0 2 0 0 0 0 5 0 14 4 0 2 14 0 2 0 0 2 1 0 2 1 0 8 10 0 0 8 3 0 10 4 1 1 0 0 13 3 0 4 0 1 1 2 0 1 8 4 1 0 0 5 2 8 0 0 0 1 1 0 0 0 4 9 9 7 2 0 2 13 3 0 0 2 0 0 0 1 0 5 10 5 13 1 0 7 10 1 2 3 0 0 1 5 1 5 0 0 1 0 1 0 1 0 1 7 4 1 0 3 ...
result:
ok 200000 numbers
Subtask #3:
score: 0
Wrong Answer
Test #22:
score: 0
Wrong Answer
time: 278ms
memory: 61520kb
input:
200000 200000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 0 0 9 0 10 0 0 0 0 0 13 0 14 0 0 0 16 0 17 0 18 0 19 0 0 0 21 0 22 0 23 0 0 0 0 0 0 0 0 0 28 0 0 0 30 0 31 0 32 0 33 0 34 0 35 0 0 0 0 0 38 0 39 0 40 0 41 0 42 0 43 0 44 0 45 0 46 0 0 0 48 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 0 0 59 0 60 0 0 0 0 ...
output:
66924 111708 126163 132405 120090 102703 37692 98788 128023 80148 79686 116427 69205 92129 93588 98091 101876 112269 127596 59268 94481 111788 125745 107341 108022 128136 89310 79156 111247 106276 126040 131998 58536 97988 74681 104505 128841 89184 116026 112513 70468 81783 34285 126264 80340 106201...
result:
wrong answer 1st numbers differ - expected: '19141', found: '66924'
Subtask #4:
score: 0
Wrong Answer
Test #32:
score: 0
Wrong Answer
time: 295ms
memory: 59228kb
input:
200000 200000 0 200000 1 200000 1 200000 0 200000 0 200000 1 200000 1 200000 1 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 0 200000 0 200000 0 200000 1 200000 0 200000 0 200000 1 200000 0 200000 1 200000 1 200000 1 200000 1 200000 0 200000 0 200000 1 200000 2 200000 1 200000 2 20000...
output:
105145 72371 144861 170495 128123 33896 194610 176484 182627 171414 47018 196121 137234 30838 170290 193504 71614 159240 192340 164791 145571 135436 47737 31952 96263 113856 161529 150304 1419 150102 76754 195541 148564 100363 42145 140789 166275 100060 168729 191987 134548 158145 42640 131293 13523...
result:
wrong answer 1st numbers differ - expected: '71224', found: '105145'
Subtask #5:
score: 0
Skipped
Dependency #1:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%