QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#359474 | #6329. Colorful Graph | ucup-team1004 | WA | 98ms | 11056kb | C++14 | 1.9kb | 2024-03-20 18:14:27 | 2024-03-20 18:14:28 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
#define all(a) (a).begin(),(a).end()
#ifdef DEBUG
template<class T>
ostream& operator << (ostream &out,vector<T> a){
out<<'[';
for(T x:a)out<<x<<',';
return out<<']';
}
template<class T>
vector<T> ary(T *a,int l,int r){
return vector<T>{a+l,a+1+r};
}
template<class T>
void debug(T x){
cerr<<x<<endl;
}
template<class T,class...S>
void debug(T x,S...y){
cerr<<x<<' ',debug(y...);
}
#else
#define debug(...) void()
#endif
const int N=7e3+10,INF=1e9;
int n,m,col[N];
vector<int>to[N],tr[N];
int dft,sct,dfn[N],low[N],scc[N];
void tarjan(int u){
static int top,stk[N];
dfn[u]=low[u]=++dft,stk[++top]=u;
for(int v:to[u]){
if(!dfn[v])tarjan(v),low[u]=min(low[u],low[v]);
else if(!scc[v])low[u]=min(low[u],dfn[v]);
}
if(low[u]==dfn[u]){
sct++;
do scc[stk[top]]=sct;while(stk[top--]^u);
}
}
bitset<N>a[N],vis;
int match[N],cur[N];
bool dfs(int u){
if(vis[u])return 0;
for(;cur[u]<=sct;){
int v=cur[u];
cur[u]=a[u]._Find_next(cur[u]);
if(!match[v]||dfs(match[v]))return match[v]=u,1;
}
vis[u]=1;
return 0;
}
int main(){
cin>>n>>m;
for(int u,v;m--;){
cin>>u>>v,to[u].push_back(v);
}
for(int i=1;i<=n;i++){
if(!dfn[i])tarjan(i);
}
for(int i=1;i<=n;i++)scc[i]=sct-scc[i]+1;
for(int u=1;u<=n;u++){
for(int v:to[u]){
if(scc[u]!=scc[v]){
tr[scc[v]].push_back(scc[u]);
}
}
}
for(int i=sct;i>=1;i--){
a[i][i]=1;
for(int j:tr[i])a[j]|=a[i];
}
for(int i=1;i<=sct;i++)a[i][i]=0;
// for(int i=1;i<=sct;i++){
// for(int j=1;j<=sct;j++){
// if(to[i][j])debug(i,j);
// }
// }
for(int i=1;i<=n;i++)cur[i]=a[i]._Find_first();
for(int i=1;i<=n;i++)dfs(i);
vis.reset();
for(int i=1;i<=sct;i++)vis[match[i]]=1;
for(int i=1,x=0;i<=sct;i++)if(!vis[i]){
x++;
for(int u=i;u;u=match[u])col[u]=x;
}
for(int i=1;i<=n;i++)printf("%d%c",col[scc[i]],"\n "[i<n]);
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 4152kb
input:
5 5 1 4 2 3 1 3 2 5 5 1
output:
1 1 1 2 1
result:
ok AC
Test #2:
score: 0
Accepted
time: 1ms
memory: 4148kb
input:
5 7 1 2 2 1 4 3 5 1 5 4 4 1 4 5
output:
2 2 1 1 1
result:
ok AC
Test #3:
score: 0
Accepted
time: 1ms
memory: 8264kb
input:
8 6 6 1 3 4 3 6 2 3 4 1 6 4
output:
4 4 4 4 3 4 2 1
result:
ok AC
Test #4:
score: 0
Accepted
time: 75ms
memory: 10992kb
input:
7000 6999 4365 4296 2980 3141 6820 4995 4781 24 2416 5844 2940 2675 3293 2163 3853 5356 262 6706 1985 1497 5241 3803 353 1624 5838 4708 5452 3019 2029 6161 3849 4219 1095 1453 4268 4567 1184 1857 2911 3977 1662 2751 6353 6496 2002 6628 1407 4623 425 1331 4445 4277 1259 3165 4994 1044 2756 5788 5496 ...
output:
1 94 425 187 2 145 2 386 641 246 1 1 40 1 232 3 1235 4 690 1726 494 1166 2 253 89 1322 106 4 347 1628 580 553 1217 8 394 393 1465 900 2 1105 226 593 1079 1217 1020 1064 1456 2 1069 993 861 56 459 2 104 1564 1 918 720 1459 559 2 2 2 1593 1306 2 2 245 429 926 1041 351 770 864 572 4 1181 819 2 2 2 432 ...
result:
ok AC
Test #5:
score: 0
Accepted
time: 72ms
memory: 10824kb
input:
7000 6999 4832 1603 5984 6985 5355 3687 6007 2170 5984 3486 3267 2189 538 2123 4343 4553 5855 6168 5984 257 4239 2304 5984 2063 3298 1869 5984 6353 5984 2018 5984 5387 5984 3382 3164 3978 2690 2816 4810 2638 5984 3773 5984 1634 5984 2786 5984 3671 5984 5140 2943 5721 5984 414 1105 4060 3093 796 5984...
output:
1 1 1716 1869 611 1 1448 1663 1 1 1 1 1 1060 1 2218 1 1 1 4 1773 621 239 1102 1 1 1486 438 1552 766 670 1 1 1 1192 1556 963 1 2217 2199 2055 2097 1147 1668 488 327 2313 687 1854 761 2316 801 31 2130 523 1 2239 1946 1237 633 1 1 552 1 1529 776 1 1717 1 70 2150 1 1 1 723 1667 1 1 727 1 530 1450 2211 4...
result:
ok AC
Test #6:
score: 0
Accepted
time: 83ms
memory: 10908kb
input:
7000 6999 1649 5337 1701 3344 4394 2172 3330 39 5932 1141 5381 5340 5453 3300 125 2172 6810 5263 804 2172 6635 2172 676 4740 3015 1183 1710 5769 611 5915 3419 1581 2094 2172 4508 2172 6604 2433 6113 1466 1604 696 1518 1123 1287 2940 4825 2172 5130 4524 2693 2172 106 2172 5157 2172 3693 2172 5198 217...
output:
1 2 1870 2015 78 3 2169 1250 614 4 1125 5 6 878 579 1805 7 1949 1176 644 651 8 9 888 494 2068 691 1921 10 11 542 12 1000 713 924 13 364 1913 2240 14 208 261 593 15 336 1157 629 2031 16 36 1957 17 662 796 639 2011 291 18 1751 5 19 52 20 151 507 440 2113 1521 21 22 23 24 25 1256 425 1123 26 939 993 27...
result:
ok AC
Test #7:
score: 0
Accepted
time: 98ms
memory: 10996kb
input:
7000 6999 2896 6321 881 2623 5058 2623 4833 2623 4669 2623 4781 5007 1447 2623 4781 4768 4781 3834 2758 4792 797 5055 3784 2623 4781 5510 6606 3040 597 3459 4136 2037 1291 3989 4781 837 4781 4379 5637 2053 1642 2665 4781 4664 4781 952 4924 2511 4781 4201 4781 2352 4781 5362 3901 197 137 2623 2706 19...
output:
1 1 1 1 1 1 1 2 1397 3 1 1 1 1 1 308 203 1 1 4 406 1 956 1144 384 247 323 744 5 6 1 7 1 1 1 1 215 1525 1 1052 1 1 872 1 8 1 9 1 10 1 1 1 11 12 1 13 1 1 968 1 14 1 1 1638 1 15 1479 252 1 8 1 1 1 16 1 1 1 1 1 1 1 734 1 17 699 606 18 1 1 1 19 228 241 20 1 1 1 1 21 22 23 1 1 1275 24 238 1 1 25 658 1 1 5...
result:
ok AC
Test #8:
score: 0
Accepted
time: 82ms
memory: 10924kb
input:
6999 6998 1269 3969 1269 2429 1269 2609 1269 2515 1269 6166 1269 6614 3108 1269 2105 1269 4670 1269 578 1269 4661 1269 1421 1269 2576 1269 6152 1269 1269 6636 3011 1269 305 1269 5189 1269 1683 1269 6861 1269 1269 5798 1499 1269 282 1269 914 1269 80 1269 677 1269 701 1269 1269 359 6521 1269 1269 1754...
output:
1 2 3 4 2427 5 6 833 2455 255 196 554 7 3066 8 9 10 2524 11 12 3375 13 14 808 15 16 17 18 19 1825 20 2433 21 22 306 23 1886 3041 24 2985 2529 25 26 2296 412 27 28 29 30 31 978 1948 7 32 3237 1105 33 34 35 36 37 2923 3480 38 104 667 163 39 40 41 2975 42 2770 1755 1397 43 44 708 45 46 1405 47 1120 193...
result:
ok AC
Test #9:
score: 0
Accepted
time: 0ms
memory: 10296kb
input:
7000 0
output:
7000 6999 6998 6997 6996 6995 6994 6993 6992 6991 6990 6989 6988 6987 6986 6985 6984 6983 6982 6981 6980 6979 6978 6977 6976 6975 6974 6973 6972 6971 6970 6969 6968 6967 6966 6965 6964 6963 6962 6961 6960 6959 6958 6957 6956 6955 6954 6953 6952 6951 6950 6949 6948 6947 6946 6945 6944 6943 6942 6941 ...
result:
ok AC
Test #10:
score: 0
Accepted
time: 4ms
memory: 11056kb
input:
7000 6999 3138 1903 3285 5919 6182 1430 1164 961 1577 6445 1390 3384 935 5723 6614 6387 4799 2877 3915 5128 5366 5455 2287 3941 2053 2326 4022 6993 488 2922 4327 4701 4674 3221 1666 4773 4356 3232 3888 937 4318 6942 577 1299 4491 1938 5154 1254 790 5532 4286 5478 2918 6725 2853 304 2554 5207 5140 77...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok AC
Test #11:
score: 0
Accepted
time: 6ms
memory: 7936kb
input:
7000 6999 33 3147 5877 4807 3116 4168 1651 2456 624 1740 6440 3058 6414 489 1023 2523 706 93 5523 598 4211 6063 3570 6840 6566 2971 6614 1907 5893 4389 4022 2527 5096 2345 4682 2134 188 5597 695 4285 1344 3832 3534 879 6574 6252 3759 3444 2167 85 5630 6600 3158 4404 6389 689 4871 6719 4295 6008 3437...
output:
38 38 71 71 38 38 71 38 71 71 71 71 71 37 71 38 71 38 71 71 38 71 38 71 71 71 71 71 71 71 71 71 36 71 71 38 38 38 71 71 71 38 38 71 60 71 38 71 71 38 71 71 71 71 71 38 71 71 71 38 38 38 38 71 71 71 71 38 38 71 38 38 71 71 38 71 38 38 38 71 38 38 71 71 38 38 71 71 38 71 38 71 71 71 71 38 35 71 38 71 ...
result:
ok AC
Test #12:
score: 0
Accepted
time: 6ms
memory: 8972kb
input:
7000 6999 1247 5150 3318 2013 5686 1615 6145 6521 5717 94 2787 3443 2648 4875 5332 5934 1897 1651 4640 2183 1750 6964 148 5228 745 2814 474 1165 496 6735 180 3412 2723 3374 6200 4361 497 5328 1928 5998 5648 1261 5090 4723 1715 706 2499 897 6569 6204 6039 2787 2882 5044 5767 4256 975 1877 1857 4453 6...
output:
274 192 274 192 274 274 193 274 193 274 193 192 193 274 274 192 274 274 274 274 274 274 274 274 274 274 220 274 193 191 274 274 274 274 274 274 193 274 193 274 274 274 193 274 274 192 274 274 274 192 192 190 274 274 274 274 274 193 193 274 192 193 274 274 274 192 274 274 193 193 274 193 193 274 274 ...
result:
ok AC
Test #13:
score: 0
Accepted
time: 21ms
memory: 10000kb
input:
7000 6999 2349 199 5295 2831 6143 2006 3212 3198 6956 3807 732 4838 5069 1027 5744 3479 6 5301 5687 4452 4201 1151 1353 4884 548 3506 6094 4799 4950 6939 5234 817 652 1314 979 6984 5771 1851 398 1322 2294 4298 847 3929 6833 183 2904 6745 4797 3874 94 315 4282 582 6591 5037 962 147 799 908 2593 5547 ...
output:
1049 1048 411 1049 1049 945 1036 411 411 411 881 1049 411 411 411 1049 411 411 631 411 411 1049 1049 950 411 1049 1049 539 411 1049 411 411 411 411 1049 554 1049 411 411 823 411 1049 902 411 1049 705 411 1049 1049 729 411 411 547 427 411 410 411 411 531 411 1049 1049 411 1049 1049 411 411 411 411 41...
result:
ok AC
Test #14:
score: 0
Accepted
time: 33ms
memory: 10164kb
input:
7000 6999 3409 1629 2076 6412 4997 1078 6320 626 4501 1104 4173 1774 5507 2375 2299 5115 4321 127 1192 6635 1909 3398 2972 499 862 5024 421 2931 861 1536 902 3813 659 4514 1843 3035 3669 1228 1724 1880 34 706 133 3468 6116 585 5073 1461 5667 3405 715 4834 6915 3007 1736 6108 3264 2870 2393 6474 2108...
output:
721 2618 1471 1006 2618 720 2188 2618 1869 1586 721 1247 2618 956 1910 1517 1407 2618 1178 2327 2618 1530 2618 1879 1977 2618 923 736 769 2399 2618 2477 2618 1741 721 1659 1505 1611 1578 801 1139 719 718 721 2618 1437 721 1563 721 962 1398 2235 2618 2323 2618 1680 879 721 2502 1306 2529 2618 2349 17...
result:
ok AC
Test #15:
score: -100
Wrong Answer
time: 0ms
memory: 10644kb
input:
7000 7000 2048 5882 6801 2408 3225 2608 1441 5079 497 6253 557 5589 2535 6257 4800 2595 4713 1286 4759 6636 4303 4296 6195 2048 6994 2987 1249 3044 1036 10 6472 2076 1996 1086 1279 1486 6100 369 4797 3437 2493 4576 2944 5601 197 5582 5488 5035 4023 659 2651 5024 2257 5710 1001 3941 446 4815 687 702 ...
output:
3132 3131 3125 3109 3108 3102 3092 3091 3090 3087 3085 3084 3065 3064 3010 3008 2831 2830 2826 3081 2825 2824 2822 2820 2819 2797 2787 2783 2780 2779 2700 2694 2692 2685 2805 2683 2675 2674 2673 2672 2671 2669 2668 2723 2665 2664 2663 2662 2964 2660 2659 2676 3035 2656 2653 2679 2652 3099 2648 2896 ...
result:
wrong answer Integer 3132 violates the range [1, 3009]