QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#92267 | #898. 二分图最大匹配 | DaBenZhongXiaSongKuaiDi# | AC ✓ | 4978ms | 39008kb | C++17 | 1.8kb | 2023-03-30 15:02:32 | 2023-03-30 15:03:38 |
Judging History
answer
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = (int)2e5+5;
int n,m,s,t,L,R,lev[maxn],h[maxn],fr[maxn],to[maxn],per[maxn]; queue<int> q;
struct Node{int to,c,rev;}; vector<Node> v[maxn];
void addEdge(int fr,int to,int c){
int f=v[fr].size(), g=v[to].size();
v[fr].push_back((Node){to,c,g}), v[to].push_back((Node){fr,0,f});
}
bool bfs(){
while(!q.empty()) q.pop();
for(int al=0;al<=n;al++) lev[al] = -1, h[al] = 0;
lev[s] = 0; q.push(s);
while(!q.empty()){
int u = q.front(); q.pop();
for(auto X:v[u])if(X.c && lev[X.to]==-1)
lev[X.to] = lev[u]+1, q.push(X.to);
if(~lev[t]) return 1;
}
return lev[t]!=-1;
}
int dfs(int u,int k){
if(u==t || !k) return k;
int ret = 0, sz = v[u].size();
for(int al=h[u];al<sz;al++,h[u]=al)if(v[u][al].c){
int to = v[u][al].to;
if(lev[to]==lev[u]+1){
int cur = dfs(to,min(k,v[u][al].c));
v[u][al].c -= cur, v[to][v[u][al].rev].c += cur;
k -= cur, ret += cur;
if(!k) break;
}
}
if(!ret) lev[u] = -1;
return ret;
}
int main(){
// freopen("test.in","r",stdin);
// freopen("test.out","w",stdout);
scanf("%d%d%d",&L,&R,&m);
s = 0, t = n = L+R+1;
for(int al=1;al<=L;al++) addEdge(0,al,1);
for(int al=1;al<=R;al++) addEdge(al+L,L+R+1,1);
for(int al=1,be,ga;al<=m;al++) scanf("%d%d",&fr[al],&to[al]), per[al] = al;
shuffle(per+1,per+m+1,mt19937(1142));
for(int al=1;al<=m;al++) addEdge(fr[per[al]]+1,to[per[al]]+L+1,1);
// for(int al=0;al<=n;al++) shuffle(v[al].begin(),v[al].end(),mt19937());
ll ans = 0;
while(bfs()) ans += dfs(s,INT_MAX);//, printf("fr %lld\n",ans);
printf("%lld\n",ans);
for(int al=1;al<=L;al++)for(auto X:v[al])if(X.to>L && !X.c){printf("%d %d\n",al-1,X.to-L-1);break;}
// printf("%.3lf\n",(double)clock()/(double)CLOCKS_PER_SEC);
return 0;
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 4542ms
memory: 34728kb
input:
100000 100000 200000 78474 45795 32144 46392 92549 13903 73460 34144 96460 92850 56318 77066 77529 84436 76342 51542 77506 99268 76410 89381 1778 61392 43607 96135 84268 74827 14857 35966 32084 94908 19876 174 1481 94390 12423 55019 64368 92587 81295 7902 25432 46032 36293 61128 73555 84836 8418 102...
output:
100000 0 54731 1 26066 2 89637 3 1717 4 68505 5 28330 6 55261 7 34703 8 42170 9 23249 10 90437 11 69580 12 72086 13 47593 14 29944 15 87183 16 763 17 2814 18 46044 19 75228 20 11487 21 72701 22 60611 23 36775 24 66081 25 45592 26 3321 27 88211 28 71467 29 47516 30 55528 31 83162 32 46298 33 26459 34...
result:
ok OK
Test #2:
score: 0
Accepted
time: 4409ms
memory: 34572kb
input:
100000 100000 200000 56815 52516 2576 76201 40377 1757 50463 66496 15833 50879 9828 16330 80692 9962 51095 17590 15870 35191 91301 65509 90774 57492 11890 8966 44786 41895 3386 35478 93470 47452 84803 93635 90745 34876 18201 38717 7472 34257 36580 19532 13248 27524 6441 69869 8821 61870 94536 67713 ...
output:
100000 0 49451 1 29914 2 31512 3 87445 4 91463 5 83824 6 17634 7 33390 8 66264 9 12388 10 9428 11 77732 12 80853 13 15512 14 39374 15 63409 16 17216 17 7319 18 83326 19 39754 20 25212 21 6189 22 61240 23 26716 24 73214 25 18227 26 17935 27 44486 28 6804 29 36155 30 36983 31 34087 32 39785 33 73657 3...
result:
ok OK
Test #3:
score: 0
Accepted
time: 0ms
memory: 11608kb
input:
4 4 7 1 1 2 2 0 0 3 1 1 2 2 0 3 2
output:
3 0 0 1 1 2 2
result:
ok OK
Test #4:
score: 0
Accepted
time: 231ms
memory: 28080kb
input:
100000 100000 199999 25370 25370 85964 85963 415 415 16796 16796 12437 12437 45409 45408 63005 63004 22155 22155 87828 87827 84013 84013 37307 37307 72324 72324 83703 83703 55390 55389 6780 6779 78090 78090 9375 9375 82192 82192 74694 74694 49841 49841 15798 15798 69855 69854 82948 82947 97389 97388...
output:
100000 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 5...
result:
ok OK
Test #5:
score: 0
Accepted
time: 218ms
memory: 27784kb
input:
100000 100000 199999 59469 59469 76773 76772 89516 89516 87040 87040 90184 90184 83075 83075 61454 61454 33615 33615 85794 85793 92072 92071 49725 49725 63842 63841 99247 99247 24121 24121 29552 29551 73533 73533 75845 75845 27029 27028 84418 84418 26636 26636 10100 10099 75013 75012 67341 67341 756...
output:
100000 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 20 20 21 21 22 22 23 23 24 24 25 25 26 26 27 27 28 28 29 29 30 30 31 31 32 32 33 33 34 34 35 35 36 36 37 37 38 38 39 39 40 40 41 41 42 42 43 43 44 44 45 45 46 46 47 47 48 48 49 49 50 50 51 51 5...
result:
ok OK
Test #6:
score: 0
Accepted
time: 4978ms
memory: 39008kb
input:
100000 100000 199999 22284 45795 32144 44930 58734 13903 57136 34144 7548 92850 56318 11874 77529 85278 27039 51542 77506 94257 69265 89381 67073 61392 86159 96135 83227 74827 14857 19500 32084 73639 86884 174 27268 94390 20020 55019 45357 92587 17833 7902 55801 46032 36293 46557 73555 13746 8418 88...
output:
100000 0 2401 1 18084 2 59700 3 99457 4 33291 5 38417 6 97167 7 64564 8 28471 9 68817 10 62095 11 31609 12 57675 13 28348 14 2599 15 99163 16 58923 17 17629 18 3975 19 53920 20 25930 21 4206 22 49364 23 55768 24 40573 25 87244 26 12858 27 39608 28 42953 29 68974 30 89214 31 48329 32 3980 33 50041 34...
result:
ok OK
Test #7:
score: 0
Accepted
time: 4963ms
memory: 30564kb
input:
100000 100000 199999 4850 52516 2576 29250 69016 1757 85854 66496 48300 50879 83741 16330 98931 9962 38730 17590 15870 13960 91301 97595 81692 57492 11890 59332 5076 41895 23574 35478 93470 65245 61976 93635 96140 34876 18201 35366 64057 34257 25588 19532 13248 91003 6441 83448 99191 61870 94536 169...
output:
100000 0 39785 1 26716 2 6189 3 33390 4 12388 5 6804 6 66264 7 36155 8 25212 9 73214 10 29914 11 87445 12 9428 13 44486 14 83326 15 61240 16 63409 17 15512 18 77732 19 17216 20 39374 21 7319 22 36983 23 45568 24 34087 25 31512 26 83824 27 73657 28 80853 29 58211 30 14867 31 17935 32 49451 33 91463 3...
result:
ok OK
Test #8:
score: 0
Accepted
time: 193ms
memory: 23760kb
input:
61217 61379 199943 14003 13749 24504 24347 30371 30219 27661 27461 33247 33397 38346 38157 17300 16944 50476 50643 56488 56551 46690 46949 21355 21288 3899 3659 24330 24165 8806 8305 40957 40994 15089 14813 20397 20389 30864 30800 33635 33755 20900 20808 55447 55499 4335 4040 36726 36551 16496 16095...
output:
37154 0 0 11 12 12 13 13 10 14 2 15 6 16 4 17 11 18 5 19 3 20 9 21 8 22 15 23 14 30 19 31 27 32 31 33 28 34 30 35 21 36 46 39 39 41 44 42 38 44 40 45 45 49 52 50 53 51 51 52 55 53 54 64 65 66 57 70 61 71 63 79 73 80 72 81 69 83 71 84 74 85 67 87 75 88 78 89 77 90 76 93 80 101 79 107 85 109 96 111 95...
result:
ok OK
Test #9:
score: 0
Accepted
time: 196ms
memory: 23752kb
input:
61352 60513 199960 2270 2419 38842 39327 48788 48843 2493 2635 40183 40659 59754 59010 48980 48993 52508 52276 12892 13195 33811 34565 40260 40700 2116 2289 11742 12133 29439 29942 4256 4392 51422 51263 44695 44994 21600 22165 21666 22208 26472 26785 49979 50038 12099 12515 10539 10816 32736 33401 3...
output:
37442 0 5 1 9 2 10 3 2 4 7 5 1 7 20 8 22 9 13 10 18 11 26 12 25 13 24 14 27 15 32 17 37 18 35 19 38 20 34 23 36 32 39 33 51 34 54 35 53 36 64 37 74 38 75 39 71 40 69 41 70 42 72 43 73 44 76 47 68 52 77 53 82 54 83 55 86 56 88 57 84 58 79 59 85 60 78 61 87 62 81 63 80 64 97 65 91 66 102 67 92 68 90 6...
result:
ok OK
Test #10:
score: 0
Accepted
time: 463ms
memory: 27136kb
input:
100000 100000 199998 0 13805 0 33641 1 9259 1 62738 1 70691 1 78118 2 41148 3 15765 3 50059 4 96644 5 91521 6 32562 8 2550 8 11396 8 48345 9 14639 9 51057 9 79293 9 92374 10 64733 10 67020 11 7764 11 46822 11 60302 12 8749 12 27869 12 69569 12 71510 13 35684 13 42579 13 82023 14 34778 15 1975 15 693...
output:
78404 0 13805 1 62738 2 41148 3 15765 4 96644 5 91521 6 32562 8 2550 9 79293 10 67020 11 46822 12 8749 13 42579 14 34778 15 69322 16 51422 17 6162 18 45006 19 64579 21 24593 22 94934 23 77417 24 47998 25 94820 27 53506 28 35478 29 65316 30 31954 31 19608 32 71996 34 64699 35 72885 36 89653 37 57779 ...
result:
ok OK
Test #11:
score: 0
Accepted
time: 495ms
memory: 27104kb
input:
100000 100000 199998 0 28389 0 41333 0 66666 1 5984 1 15912 3 63753 3 77735 4 25015 4 30450 4 90212 5 66978 5 98909 6 63465 6 78227 6 78950 6 85422 7 1743 7 1868 7 55171 8 37582 9 26491 9 82984 10 29229 10 29811 10 33063 11 10609 11 48601 11 73298 11 95658 12 29064 12 50261 12 63186 12 68616 13 8683...
output:
78497 0 41333 1 15912 3 63753 4 30450 5 98909 6 78227 7 1868 8 37582 9 26491 10 33063 11 95658 12 50261 13 92858 14 61234 15 77990 16 16525 17 23926 18 93717 19 32559 21 31436 23 56994 24 34533 25 23940 26 36458 27 33773 28 89481 29 83766 30 28313 31 82347 32 28749 33 69818 34 35265 35 82877 36 9336...
result:
ok OK
Test #12:
score: 0
Accepted
time: 498ms
memory: 27212kb
input:
100000 100000 199997 0 4357 0 35525 0 51857 1 57468 1 94927 1 96004 3 75468 4 20202 4 37102 5 32207 6 8677 6 16775 6 46813 6 75640 7 30806 8 4099 8 26454 8 49376 8 55539 8 67032 9 82362 10 11387 10 33778 10 35352 10 50533 10 54706 11 44868 11 59104 14 80528 14 90600 14 99752 15 10954 15 80519 15 873...
output:
78379 0 35525 1 57468 3 75468 4 37102 5 32207 6 46813 7 30806 8 26454 9 82362 10 54706 11 59104 14 80528 15 10954 16 32645 17 88162 18 52112 19 49350 20 58977 21 31926 22 50244 23 5726 24 92464 26 52648 27 57836 28 96888 30 50525 31 76950 32 73647 33 971 34 50898 35 81872 36 660 37 65791 38 55672 39...
result:
ok OK
Test #13:
score: 0
Accepted
time: 19ms
memory: 15300kb
input:
17707 77101 11866 4 29611 4 62770 4 65605 5 22177 5 57724 14 59632 14 68649 17 9622 18 9221 18 43355 29 19612 30 44428 32 51277 34 53196 35 20939 37 68142 38 34663 38 36432 39 71932 40 62217 41 40291 43 53542 44 22018 44 60539 47 56819 47 76081 49 18326 50 52876 50 58006 51 64709 51 66011 52 26751 5...
output:
8453 4 65605 5 22177 14 59632 17 9622 18 43355 29 19612 30 44428 32 51277 34 53196 35 20939 37 68142 38 36432 39 71932 40 62217 41 40291 43 53542 44 22018 47 56819 49 18326 50 58006 51 66011 52 26751 54 5453 55 72966 57 8366 58 64790 59 16851 60 49400 62 16210 67 18050 68 27089 70 47489 71 41622 73 ...
result:
ok OK
Test #14:
score: 0
Accepted
time: 144ms
memory: 20552kb
input:
69830 19691 148749 0 8565 0 12093 0 12608 2 777 2 8771 3 6106 3 7526 3 10596 3 12199 3 14674 3 17676 4 4643 4 15016 4 17194 6 6948 7 1743 7 7750 8 2305 8 4814 9 4468 9 12246 9 16763 9 17448 10 295 10 12043 10 13971 11 168 11 4447 11 7762 11 15833 11 15993 12 1914 12 3080 12 5649 14 29 15 1675 15 464...
output:
19684 0 12608 2 8771 3 7526 4 15016 6 6948 7 7750 8 4814 9 4468 10 295 11 168 12 1914 14 29 15 6650 16 10804 17 10302 18 676 20 5430 21 2932 22 1202 23 100 24 3698 25 7727 26 612 27 6935 29 18230 30 6797 31 1075 32 1090 33 17371 34 10683 36 5083 37 11224 38 2502 40 6932 41 18160 42 5382 43 18334 44 ...
result:
ok OK
Test #15:
score: 0
Accepted
time: 104ms
memory: 18560kb
input:
53336 61958 92222 0 23730 0 34075 0 35525 1 30468 1 61015 3 24509 3 36308 4 8061 4 45185 4 54435 5 32530 5 59288 6 10104 6 56657 10 2203 10 3106 10 33778 11 29821 11 59104 12 27897 14 18850 15 13472 15 14983 15 37131 15 40140 15 49346 15 59901 16 12876 16 32645 18 26571 21 60370 22 39980 22 41044 22...
output:
40194 0 23730 1 61015 3 24509 4 45185 5 59288 6 10104 10 2203 11 29821 12 27897 14 18850 15 37131 16 12876 18 26571 21 60370 22 41044 23 59945 24 17646 25 7805 26 55641 27 47048 28 37215 29 61757 30 51900 32 18385 33 14342 34 19082 35 30280 36 24688 37 59801 39 53021 40 21280 42 10909 43 28881 44 12...
result:
ok OK
Test #16:
score: 0
Accepted
time: 131ms
memory: 18912kb
input:
36033 25839 130375 0 1577 0 16725 0 22301 0 24558 1 5977 1 6738 1 9339 1 25294 2 762 2 6992 2 10207 2 14608 3 3 3 3002 3 25047 4 12402 4 13815 4 15862 5 4727 6 6680 6 8345 6 10057 6 13352 6 17084 7 9878 7 17893 7 21628 7 23892 8 2601 8 13004 8 19099 8 23028 9 2307 9 13011 9 15776 9 22642 11 7388 11 ...
output:
25668 0 22301 1 9339 2 14608 3 3 4 15862 5 4727 6 6680 7 21628 8 13004 9 22642 11 10686 13 23460 14 2737 15 18754 17 15913 18 918 19 23035 20 7972 21 16661 22 2666 23 8684 24 19602 25 10609 26 1468 27 25729 28 5879 29 407 30 24817 31 1481 32 1161 33 11274 34 5639 35 16587 37 165 38 12661 39 8711 40 ...
result:
ok OK
Test #17:
score: 0
Accepted
time: 23ms
memory: 16188kb
input:
14868 99117 25214 0 19546 0 37951 1 13804 1 18263 1 38541 1 49319 1 64693 1 81665 1 91777 2 2159 2 8896 4 38134 5 3464 5 52631 6 85971 6 92674 7 5530 7 12991 7 35465 8 12077 8 71946 9 57520 11 75486 11 95227 12 83001 13 83429 13 85532 15 32388 15 49234 15 87159 16 70733 16 95797 17 45027 18 51284 20...
output:
12003 0 19546 1 18263 2 2159 4 38134 5 3464 6 92674 7 12991 8 12077 9 57520 11 95227 12 83001 13 85532 15 49234 16 70733 17 45027 18 51284 20 38605 21 5520 23 86112 26 29339 27 7626 28 31861 30 6132 33 30727 34 26622 37 81810 38 72113 39 11712 40 81311 41 73351 43 49309 44 83232 46 77294 47 92399 48...
result:
ok OK
Test #18:
score: 0
Accepted
time: 46ms
memory: 15948kb
input:
53098 9437 57924 0 262 0 3336 0 7251 2 2976 3 4877 4 3403 4 8279 5 4742 6 2961 6 8901 8 5979 8 8808 9 7822 10 415 12 969 13 1058 15 3592 17 5759 18 7128 19 4461 19 9343 20 5011 20 8942 21 8414 22 5217 22 5266 22 5455 23 5698 23 8697 24 5855 25 1211 25 2830 28 3685 29 1866 29 8645 32 6955 32 7045 33 ...
output:
9415 0 262 2 2976 3 4877 4 8279 5 4742 6 8901 8 8808 9 7822 10 415 12 969 13 1058 15 3592 17 5759 18 7128 19 9343 20 5011 21 8414 22 5455 23 5698 24 5855 25 1211 28 3685 29 8645 32 6955 33 9242 34 7733 36 302 37 7754 40 5766 43 5144 44 1709 45 2552 46 6881 47 1510 49 1104 50 7235 51 760 52 4351 55 4...
result:
ok OK
Test #19:
score: 0
Accepted
time: 401ms
memory: 22160kb
input:
62342 62612 153201 0 1819 1 26257 1 34654 1 41966 2 9609 3 19007 3 31306 3 36054 4 36681 4 42043 4 46885 4 54123 5 35272 5 48535 6 9177 6 44477 7 11189 7 17566 7 41426 7 53724 8 13815 8 36015 8 48166 10 1144 10 2928 10 21148 10 21677 10 46645 12 39907 12 53275 13 52579 14 21089 15 39807 16 46513 17 ...
output:
53671 0 1819 1 41966 2 9609 3 31306 4 36681 5 35272 6 9177 7 41426 8 48166 10 1144 12 39907 13 52579 14 21089 15 39807 16 46513 17 57314 18 34468 19 49799 20 58031 21 6661 22 30788 24 43728 27 53143 28 60322 29 62025 30 49076 31 22626 32 22621 33 23347 34 57171 36 9660 37 13583 38 10615 39 44936 40 ...
result:
ok OK
Test #20:
score: 0
Accepted
time: 40ms
memory: 17140kb
input:
95835 11475 31126 7 7489 10 1813 17 1852 18 9253 21 2999 25 1649 28 7088 33 4068 33 6119 34 5651 39 10350 41 5703 43 7512 51 3934 52 4246 55 4275 55 6549 64 8185 66 10080 67 10332 73 6343 73 6432 80 8844 86 1764 87 5646 92 399 95 509 95 9564 102 10598 107 582 121 5613 122 5866 123 7063 125 4180 125 ...
output:
10716 7 7489 10 1813 17 1852 18 9253 21 2999 25 1649 28 7088 33 4068 34 5651 39 10350 41 5703 43 7512 51 3934 52 4246 55 6549 64 8185 66 10080 67 10332 73 6343 80 8844 86 1764 87 5646 92 399 95 509 102 10598 107 582 121 5613 122 5866 123 7063 125 6965 126 4185 137 7604 138 6743 140 9700 141 7624 144...
result:
ok OK
Test #21:
score: 0
Accepted
time: 78ms
memory: 20712kb
input:
5824 49455 192460 0 451 0 2959 0 4380 0 4902 0 9092 0 9318 0 10189 0 11109 0 13730 0 15872 0 17604 0 18557 0 19327 0 19871 0 21171 0 24112 0 26985 0 28368 0 28474 0 29569 0 30903 0 31861 0 35960 0 36791 0 38654 0 40350 0 46164 0 46921 0 47526 0 48226 0 48323 0 48592 0 49186 1 2866 1 8429 1 9731 1 98...
output:
5824 0 46164 1 31290 2 23583 3 43983 4 1817 5 44949 6 16924 7 41751 8 19601 9 24246 10 32763 11 45532 12 7359 13 22232 14 19629 15 12318 16 24338 17 18478 18 15143 19 8607 20 28132 21 39740 22 31298 23 28417 24 21176 25 3691 26 5681 27 32378 28 45623 29 26733 30 39131 31 17162 32 24251 33 41037 34 4...
result:
ok OK
Test #22:
score: 0
Accepted
time: 133ms
memory: 20828kb
input:
64506 23320 150593 0 4768 0 10542 0 14842 0 20602 1 1266 1 12253 2 471 2 13145 2 14023 2 15190 2 18272 2 22689 4 8149 4 9069 6 357 6 10397 6 10869 6 16797 7 5497 7 19179 8 3468 8 6448 8 11473 8 12455 8 13155 9 751 10 11245 11 10586 11 13266 11 17148 11 20206 11 22535 12 5515 13 374 13 19047 14 11867...
output:
23290 0 14842 1 1266 2 22689 4 8149 6 357 7 19179 8 3468 9 751 10 11245 11 17148 12 5515 13 19047 14 18726 15 15514 16 11141 17 12852 18 6391 20 10037 21 859 22 3062 23 9135 24 10882 25 2182 26 437 27 14379 28 20197 29 16020 30 16828 31 980 32 21280 33 19339 34 1655 35 15703 36 394 37 15801 38 16673...
result:
ok OK