QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#134875 | #6634. Central Subset | PhantomThreshold# | WA | 36ms | 3784kb | C++20 | 1.1kb | 2023-08-05 09:38:01 | 2023-08-05 09:38:04 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
void mian()
{
int n,m;
cin>>n>>m;
vector<int> pa(n+5);
function<int(int)> find=[&](int x){return pa[x]?pa[x]=find(pa[x]):x;};
vector<vector<int>> G(n+5);
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
int pu=find(u),pv=find(v);
if(pu!=pv)
{
G[u].push_back(v),G[v].push_back(u);
pa[pv]=pu;
}
}
vector<int> dep(n+5);
function<void(int)> dfs=[&](int u)
{
for(auto v:G[u])
{
if(not dep[v])
{
dep[v]=dep[u]+1;
dfs(v);
}
}
};
dep[1]=1;
dfs(1);
int s=sqrt(n);
while(s*s<n)s++;
// cerr<<s<<endl;
vector<vector<int>> dg(s+5);
for(int i=1;i<=n;i++)
{
dg[dep[i]%s].push_back(i);
}
for(int i=0;i<s;i++)
{
if((int)dg[i].size()==0)
{
cout<<1<<"\n";
cout<<1<<"\n";
return;
}
if((int)dg[i].size()<=s)
{
cout<<dg[i].size()<<"\n";
for(auto x:dg[i])
cout<<x<<' ';
cout<<"\n";
return;
}
}
return;
}
int main()
{
ios_base::sync_with_stdio(false);
int T;
cin>>T;
while(T--)
{
mian();
}
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3452kb
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 2 4 2 3 5
result:
ok correct (2 test cases)
Test #2:
score: 0
Accepted
time: 34ms
memory: 3536kb
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 4 8 12 2 3 4 2 4 8 1 2 1 2 3 3 6 9 1 2 4 4 8 10 14 3 4 13 14 1 1 4 5 10 15 20 2 3 8 2 4 8 3 6 7 8 3 3 4 5 3 4 8 12 2 3 4 1 2 2 3 4 1 1 2 2 4 3 3 5 8 4 4 8 10 14 4 7 8 9 10 1 1 3 4 8 12 2 3 5 4 4 8 11 15 1 2 1 1 4 5 10 15 20 2 5 8 4 4 8 10 14 3 5 6 15 1 1 2 3 6 1 3...
result:
ok correct (10000 test cases)
Test #3:
score: -100
Wrong Answer
time: 36ms
memory: 3784kb
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 45 90 135 180 225 270 315 360 405 450 495 540 585 630 675 720 765 810 855 900 945 990 1035 1080 1125 1170 1215 1260 1305 1350 1395 1440 1485 1530 1575 1620 1665 1710 1755 1800 1845 1890 1935 1980 1 1 44 45 90 135 180 225 270 315 360 405 450 495 540 585 630 675 720 765 810 855 900 945 990 1044 10...
result:
wrong answer Condition failed: "getMaxBfsDist(n, subset) <= csqrtn" (test case 4)