QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#558396 | #8672. 排队 | Ayaya | 10 | 25ms | 9748kb | C++14 | 2.4kb | 2024-09-11 15:53:11 | 2024-09-11 15:53:11 |
Judging History
answer
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<unordered_map>
#include<vector>
#include<bitset>
#include<queue>
#include<set>
#include<map>
#include<ctime>
#include<random>
#include<numeric>
using namespace std;
#define ll long long
#define ull unsigned long long
#define lc (x<<1)
#define rc (x<<1|1)
#define pii pair<int,int>
#define mkp make_pair
#define fi first
#define se second
#define cout (cerr<<">> ",cout)
const int Mx=1000005,p=998244353;
int read(){
char ch=getchar();
int Alice=0,Aya=1;
while(ch<'0'||ch>'9'){
if(ch=='-') Aya=-Aya;
ch=getchar();
}
while(ch>='0'&&ch<='9')
Alice=(Alice<<3)+(Alice<<1)+(ch^48),ch=getchar();
return (Aya==1?Alice:-Alice);
}
int n,m;
struct Seg{
int l,r;
}a[Mx],d[Mx];
class SegTree{
private:
struct Node{
int l,r;
int mn;
int tag;
};
Node t[Mx<<2];
void PushUp(int x){
t[x].mn=min(t[lc].mn,t[rc].mn);
}
void Apply(int x,int k){
t[x].tag+=k;
t[x].mn+=k;
}
void PushDown(int x){
Apply(lc,t[x].tag),Apply(rc,t[x].tag);
t[x].tag=0;
}
public:
void Build(int x,int l,int r){
t[x].l=l,t[x].r=r;
if(l==r){
t[x].mn=-(l==n+1);
return;
}
int mid=((l+r)>>1);
Build(lc,l,mid),Build(rc,mid+1,r);
PushUp(x);
}
void Modify(int x,int L,int R){
int l=t[x].l,r=t[x].r;
if(L>R) return;
if(l==L&&r==R){
Apply(x,1);
return;
}
PushDown(x);
int mid=((l+r)>>1);
if(R<=mid) Modify(lc,L,R);
else if(L>mid) Modify(rc,L,R);
else Modify(lc,L,mid),Modify(rc,mid+1,R);
PushUp(x);
}
int Qry(int x,int k){
int l=t[x].l,r=t[x].r;
if(l==r){
if(t[x].mn>k) exit(114514);
return l;
}
PushDown(x);
if(t[lc].mn>k) return Qry(rc,k);
else return Qry(lc,k);
}
};
SegTree tr;
signed main(){
n=read(),m=read();
for(int i=1;i<=n;i++){
a[i].l=read(),a[i].r=read();
}
tr.Build(1,1,n+1);
for(int i=1;i<=n;i++){
int L=tr.Qry(1,a[i].r),R=min(i,tr.Qry(1,a[i].l-1)-1);
d[i]={L,R};
tr.Modify(1,L,R);
}
for(int Id=1,l,r;Id<=m;Id++){
l=read(),r=read();
int res=0;
for(int i=l;i<=r;i++){
if(l>=d[i].l&&l<=d[i].r) res++;
}
cout<<res<<endl;
}
return 0;
}
/*
Hello!!
Sample:
10 10
1 3
2 4
0 2
0 5
0 2
4 9
5 7
3 6
1 9
2 2
-------------------
*/
詳細信息
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 7684kb
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: 10
Accepted
time: 7ms
memory: 7940kb
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:
ok 5000 numbers
Test #3:
score: 10
Accepted
time: 17ms
memory: 7928kb
input:
5000 5000 33 36 10 96 0 89 45 59 4 38 16 26 7 83 3 45 37 78 32 57 19 58 24 88 81 87 24 68 18 38 50 78 27 92 61 98 1 13 8 63 33 55 38 76 18 43 64 72 24 93 7 34 1 38 44 72 5 36 62 71 6 72 8 53 22 93 75 78 24 69 10 38 31 99 12 100 57 67 22 65 34 44 37 88 3 48 62 84 62 79 5 68 1 18 49 57 45 64 6 38 37 3...
output:
101 101 101 101 63 101 101 101 99 100 28 86 101 92 101 101 101 101 101 101 101 101 99 101 101 101 101 92 101 101 4 101 101 101 101 101 101 74 101 101 101 101 101 101 41 101 101 51 101 101 101 101 101 101 101 100 101 101 100 101 101 101 101 101 94 101 101 101 101 101 101 46 101 99 101 101 7 101 95 10...
result:
ok 5000 numbers
Test #4:
score: 10
Accepted
time: 19ms
memory: 7880kb
input:
5000 5000 332 468 241 278 90 259 397 412 212 317 55 238 173 296 176 184 67 260 51 95 117 184 37 276 122 441 226 401 43 244 127 186 34 493 38 221 3 4 67 122 45 486 5 91 64 158 74 394 134 188 229 265 155 422 221 403 176 252 28 98 94 250 133 133 107 281 13 347 154 209 203 271 12 325 33 318 181 220 27 2...
output:
500 11 490 491 501 2 7 490 468 140 501 494 215 1 499 186 494 483 495 483 0 85 31 1 345 492 24 0 443 24 1 500 484 466 501 498 500 496 0 89 396 1 84 324 500 491 436 471 436 430 484 185 358 367 484 488 38 332 13 0 411 28 498 501 498 307 55 258 101 376 139 455 299 501 119 20 501 14 500 501 273 291 1 107...
result:
ok 5000 numbers
Test #5:
score: 10
Accepted
time: 16ms
memory: 7944kb
input:
5000 5000 67 104 31 155 488 834 533 622 20 899 560 652 91 910 362 683 173 699 241 251 130 644 276 631 712 926 54 840 142 440 88 566 387 997 54 771 579 866 107 862 241 467 26 289 448 701 482 584 118 632 120 419 480 654 271 699 78 621 251 509 140 689 213 356 681 930 371 412 0 142 590 853 557 711 387 5...
output:
13 5 586 0 215 95 471 38 4 268 134 731 118 855 701 5 36 868 2 713 23 47 0 615 390 406 251 9 913 163 841 15 1 829 61 152 111 3 468 517 112 6 6 243 31 0 9 752 187 208 105 0 229 242 773 340 0 34 0 686 22 112 65 13 231 867 911 177 83 3 125 22 43 22 47 186 87 416 871 7 0 38 187 743 357 645 144 854 6 20 6...
result:
ok 5000 numbers
Test #6:
score: 10
Accepted
time: 14ms
memory: 7940kb
input:
5000 5000 1484 3115 596 3914 2334 3936 2782 3399 176 1270 3695 4175 4185 4222 2165 2301 321 4460 33 35 679 1844 443 2424 292 520 796 995 1014 4510 1053 3456 589 4211 514 3195 449 4153 1314 4247 1388 1736 1301 2724 1555 1950 413 4176 3501 4606 396 1492 521 2047 125 3192 677 1709 317 1833 444 1562 120...
output:
0 1 2 0 1 0 0 0 0 0 0 1 2 1 0 1 0 0 0 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 1 0 0 0 3 1 2 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 2 0 0 0 0 0 0 0 0 0 0 3 0 0 1 0 0 0 0 0 2 0 2 2 0 2 2 3 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 ...
result:
ok 5000 numbers
Test #7:
score: 10
Accepted
time: 13ms
memory: 7876kb
input:
5000 5000 0 33 0 96 0 89 0 59 0 4 0 16 0 83 0 3 0 78 0 57 0 58 0 88 0 81 0 68 0 38 0 50 0 92 0 98 0 1 0 63 0 55 0 76 0 43 0 64 0 93 0 34 0 1 0 72 0 5 0 71 0 72 0 8 0 93 0 78 0 69 0 10 0 99 0 100 0 57 0 65 0 44 0 88 0 48 0 84 0 79 0 68 0 1 0 49 0 45 0 6 0 37 0 27 0 50 0 57 0 94 0 89 0 78 0 83 0 74 0 ...
output:
101 101 101 101 91 101 101 101 99 100 90 97 101 98 101 101 101 101 101 101 101 101 101 101 101 101 101 97 101 101 74 101 101 101 101 101 101 98 101 101 101 101 101 101 86 101 101 82 101 101 101 101 101 101 101 100 101 101 101 101 101 101 101 101 96 101 101 101 101 101 101 96 101 101 101 101 69 101 1...
result:
ok 5000 numbers
Test #8:
score: 10
Accepted
time: 25ms
memory: 8008kb
input:
5000 5000 0 67 0 31 0 488 0 622 0 899 0 560 0 910 0 362 0 699 0 251 0 644 0 276 0 926 0 840 0 440 0 566 0 997 0 771 0 579 0 107 0 467 0 289 0 448 0 482 0 632 0 120 0 480 0 699 0 621 0 251 0 689 0 213 0 930 0 371 0 0 0 590 0 711 0 387 0 73 0 466 0 430 0 847 0 201 0 63 0 64 0 234 0 265 0 133 0 697 0 3...
output:
749 415 945 338 865 820 943 812 610 883 842 947 850 985 958 617 869 978 356 969 807 739 447 945 921 901 892 492 987 823 969 449 233 983 675 834 885 236 927 932 800 627 401 914 863 73 630 954 909 860 852 31 917 863 966 914 281 770 323 959 664 810 808 739 886 979 988 773 726 249 902 714 736 761 791 88...
result:
ok 5000 numbers
Test #9:
score: 10
Accepted
time: 3ms
memory: 8008kb
input:
5000 5000 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 0 0 0 0 20 0 21 0 22 0 0 0 24 0 25 0 0 0 27 0 0 0 0 0 0 0 31 0 32 0 33 0 34 0 35 0 36 0 0 0 38 0 39 0 40 0 41 0 42 0 0 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 0 0 53 0 54 0 55 0 0 0 0 0 58 0 59 0 60 0 61 0 62 0...
output:
406 752 1297 49 190 3029 1175 1826 550 787 30 3676 1099 2402 929 2810 1655 931 172 3198 3561 2845 1688 1754 849 853 816 2603 2591 442 309 1545 211 434 368 1084 1355 1641 239 412 680 1830 421 1175 1950 3000 567 1912 2576 1674 223 2381 575 309 1763 1568 813 290 1187 1217 1381 448 910 1147 536 1058 833...
result:
ok 5000 numbers
Test #10:
score: 10
Accepted
time: 8ms
memory: 7936kb
input:
5000 5000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 0 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 0 0 49 0 50 0 51 0 52 0 53 0 54 0 55 0 56 0 57 0 58 0 59 0 60 ...
output:
3044 1914 39 1760 154 2146 1494 2629 2354 494 1295 743 1203 1771 2288 755 1126 1008 2095 469 625 897 2206 2712 3357 3098 1488 364 1360 949 1680 2016 876 2110 1943 79 1796 2114 425 1082 2584 1384 2842 668 3879 510 1589 3110 3295 2984 1268 1399 1381 212 1626 1134 1029 4271 1227 1991 4006 873 1463 748 ...
result:
ok 5000 numbers
Test #11:
score: 10
Accepted
time: 11ms
memory: 9748kb
input:
5000 5000 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 0 0 0 0 20 0 21 0 22 0 0 0 24 0 25 0 0 0 27 0 0 0 0 0 0 0 31 0 32 0 33 0 34 0 35 0 36 0 0 0 38 0 39 0 40 0 41 0 42 0 0 0 44 0 45 0 46 0 47 0 48 0 49 0 50 0 51 0 0 0 53 0 54 0 55 0 0 0 0 0 58 0 59 0 60 0 61 0 62 0...
output:
2107 1855 3981 3461 1876 3487 2007 2882 3200 3851 2340 3687 3180 3603 2309 3727 4113 1187 196 3362 3819 3448 1765 2834 2470 2711 3443 4174 2923 1586 3779 4041 2075 1788 2375 1913 1991 2405 3176 3644 1457 1946 3752 3358 2150 3494 2273 2120 2999 3913 2110 3604 4062 1986 1877 2867 2910 3133 3677 2634 3...
result:
ok 5000 numbers
Subtask #2:
score: 0
Time Limit Exceeded
Test #12:
score: 0
Time Limit Exceeded
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:
Subtask #3:
score: 0
Time Limit Exceeded
Test #22:
score: 0
Time Limit Exceeded
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:
19141 39288 14841 58655 15427 4999 26338 93250 2826 78084 64070 55481 2565 15173 24866 57627 35887 51335 67552 44939 27730 24781 54502 26903 73199 7553 3836 41740 67889 104576 43522 3766 13007 31659 17264 85349 16595 28681 64012 56457 23856 47820 22752 86123 37679 44828 88810 36305 15843 33728 10005...
result:
Subtask #4:
score: 0
Time Limit Exceeded
Test #32:
score: 0
Time Limit Exceeded
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:
71224 21392 65746 47218 62293 29293 146310 136621 165312 81582 25124 120262 104926 12518 90915 31784 50073 15588 1517 106447 92329 71506 16694 4846 38213 34902 133281 98867 697 26263 6631 173459 61316 71682 15564 112191 125788 15305 41840 30379 24107 17435 10898 115177 22279 37582 101778 120170 1264...
result:
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%
Subtask #6:
score: 0
Skipped
Dependency #5:
0%