QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#139679 | #6634. Central Subset | syx2567 | RE | 296ms | 12664kb | C++14 | 1.5kb | 2023-08-14 10:21:05 | 2023-08-14 10:21:07 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int T,n,m,B,cnt,ans[N];
int vis[N];
vector <int> g[N],g2[N];
vector <int> ::iterator it;
void init()
{
cnt=0;
for(int i=1;i<=n;i++) g[i].clear(),g2[i].clear();
for(int i=1;i<=n;i++) vis[i]=0;
}
void dfs(int x,int f)
{
// printf("%d %d\n",x,f);
if(x!=1)
{
g2[x].push_back(f);
g2[f].push_back(x);
}
vis[x]=1;
for(int i=0;i<g[x].size();i++)
{
int v=g[x][i];
if(vis[v]) continue;
dfs(v,x);
}
}
int fa[N],dep[N],pos[N];
void dfs2(int x,int f)
{
fa[x]=f;
dep[x]=dep[f]+1;
pos[x]=x;
for(int i=0;i<g2[x].size();i++)
{
int v=g2[x][i];
if(v==f) continue;
dfs2(v,x);
if(dep[pos[v]]>dep[pos[x]]) pos[x]=pos[v];
}
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
init();
for(int i=1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1,0);
B=ceil(sqrt(n));
// printf("%d\n",B);
// for(int i=1;i<=n;i++)
// for(int j=0;j<g2[i].size();j++) printf("%d %d\n",i,g2[i][j]);
int now=1;
while(1)
{
dfs2(now,0);
int rt=pos[now];
dfs2(rt,0);
int x=pos[rt];
for(int i=1;i<=B;i++) x=fa[x];
// printf("%d %d %d %d\n",now,rt,pos[rt],x);
if(x==0||x==rt){ans[++cnt]=rt;break;}
ans[++cnt]=x;
g2[fa[x]].erase(find(g2[fa[x]].begin(),g2[fa[x]].end(),x));
now=fa[x];
}
printf("%d\n",cnt);
for(int i=1;i<=cnt;i++) printf("%d ",ans[i]);
printf("\n");
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 8544kb
input:
2 4 3 1 2 2 3 3 4 6 7 1 2 2 3 3 1 1 4 4 5 5 6 6 4
output:
2 3 4 2 4 6
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 13ms
memory: 8712kb
input:
10000 15 14 13 12 5 4 9 8 11 12 15 14 10 9 14 13 2 3 2 1 6 5 10 11 3 4 7 6 8 7 6 5 2 1 2 4 4 6 2 3 3 5 10 9 8 3 9 4 5 6 5 10 3 2 5 4 2 7 1 2 4 3 2 1 2 1 2 1 2 1 9 8 9 8 5 4 1 2 6 5 3 4 3 2 7 8 7 6 2 1 1 2 14 13 3 10 5 6 2 9 11 4 2 3 2 1 8 7 13 6 5 4 5 12 6 7 4 3 7 14 16 15 2 3 2 1 6 10 6 9 6 4 9 11 ...
output:
3 5 10 15 2 4 6 2 5 6 1 2 1 2 3 4 8 9 1 2 2 5 8 2 6 16 1 14 4 6 12 18 20 2 4 8 2 5 10 2 10 16 1 4 3 5 10 15 2 4 7 1 2 2 4 9 1 5 2 3 4 2 4 8 2 5 14 2 8 18 1 3 3 5 10 15 2 3 4 2 5 16 1 3 1 6 4 6 12 18 21 2 8 11 2 5 14 2 6 16 1 4 2 4 6 2 4 6 2 5 7 3 6 7 21 1 7 3 ...
result:
ok correct (10000 test cases)
Test #3:
score: 0
Accepted
time: 61ms
memory: 8940kb
input:
100 2000 1999 529 528 885 884 1221 1222 375 374 245 244 758 757 711 710 1521 1522 1875 1874 749 750 823 822 1959 1958 1767 1766 155 154 631 632 825 824 1330 1331 457 456 1344 1343 1817 1818 413 414 582 583 1828 1827 1335 1336 654 655 162 161 1668 1667 1966 1967 1472 1471 1185 1184 518 517 1509 1510 ...
output:
44 46 92 138 184 230 276 322 368 414 460 506 552 598 644 690 736 782 828 874 920 966 1012 1058 1104 1150 1196 1242 1288 1334 1380 1426 1472 1518 1564 1610 1656 1702 1748 1794 1840 1886 1932 1978 2000 1 1983 23 46 91 136 181 226 271 316 361 406 451 496 541 586 631 676 721 766 811 856 901 946 991 10...
result:
ok correct (100 test cases)
Test #4:
score: 0
Accepted
time: 296ms
memory: 12664kb
input:
10 14914 14913 13959 13958 3643 3642 4582 4581 13378 13379 981 980 12901 12902 12355 12356 14692 14691 9670 9669 14632 14631 1441 1440 1367 1368 6237 6238 8297 8298 1021 1020 5096 5097 4773 4774 7778 7779 3013 3014 5536 5535 11621 11620 13904 13903 3050 3049 14179 14178 7471 7472 13380 13381 7403 74...
output:
121 124 248 372 496 620 744 868 992 1116 1240 1364 1488 1612 1736 1860 1984 2108 2232 2356 2480 2604 2728 2852 2976 3100 3224 3348 3472 3596 3720 3844 3968 4092 4216 4340 4464 4588 4712 4836 4960 5084 5208 5332 5456 5580 5704 5828 5952 6076 6200 6324 6448 6572 6696 6820 6944 7068 7192 7316 7440 7564...
result:
ok correct (10 test cases)
Test #5:
score: 0
Accepted
time: 55ms
memory: 11428kb
input:
10 20000 19999 6831 6760 15763 15900 10362 10184 5821 5880 17555 17389 16708 16574 11592 11436 186 209 19380 19313 8867 8718 12100 12237 16245 16110 18464 18568 4713 4665 17412 17578 18666 18750 4360 4322 12350 12502 4054 4103 2874 2849 8097 8202 14489 14639 1056 1016 13500 13581 2435 2391 199 173 8...
output:
6 1143 2011 6615 8318 19216 20000 5 176 2729 8283 13301 20000 4 3724 10026 15746 20000 6 9863 2703 3873 9997 18494 20000 8 14623 8672 1288 3081 8081 12009 17913 20000 6 4075 2326 6159 14406 19409 20000 7 972 547 6581 9157 15481 19558 19999 6 5415 2004 6192 5623 18312 19999 6 1025 27 1588 763...
result:
ok correct (10 test cases)
Test #6:
score: -100
Runtime Error
input:
1 200000 199999 136649 136648 44943 44944 7148 7149 50332 50333 149967 149966 28976 28975 78549 78550 178698 178697 96434 96433 7859 7858 88976 88977 23348 23347 161682 161681 125393 125392 67892 67893 73592 73593 179054 179055 110841 110842 163714 163715 7982 7981 56309 56310 196486 196485 19176 19...