社区讨论
WA#3求条玄关
P14807[CCPC 2024 哈尔滨站] 欢迎加入线上会议!参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mkhznm53
- 此快照首次捕获于
- 2026/01/17 15:31 2 个月前
- 此快照最后确认于
- 2026/01/19 23:55 2 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5+100;
bool vist[maxn],vis[maxn];
int hd[maxn],ans;
struct Edge{
int to,nxt;
}e[maxn];
int idx,ccc;
void add(int a,int b){
e[++idx].nxt = hd[a];
e[idx].to = b;
hd[a] = idx;
}
void dfs(int cur,int fa){
vist[cur] = 1;
ans++;
if(vis[cur])return ;
int cnt = 0;
for(int i = hd[cur];i;i = e[i].nxt){
int nxt = e[i].to;
if(nxt == fa || vist[nxt])continue;
dfs(nxt,cur);
cnt++;
}
if(cnt)ccc++;
return ;
}
void ddd(int cur,int fa){
vist[cur] = 1;
if(vis[cur])return ;
cout<<cur<<" ";
int ttt = 0;
for(int i = hd[cur];i;i = e[i].nxt){
int nxt = e[i].to;
if(nxt == fa || vist[nxt])continue;
ttt++;
}
cout<<ttt<<" ";
for(int i = hd[cur];i;i = e[i].nxt){
int nxt = e[i].to;
if(nxt == fa || vist[nxt])continue;
cout<<nxt<<" ";
}
cout<<'\n';
for(int i = hd[cur];i;i = e[i].nxt){
int nxt = e[i].to;
if(nxt == fa || vist[nxt])continue;
ddd(nxt,cur);
}
return ;
}
int main(){
int n,m,k,a,b;
cin>>n>>m>>k;
for(int i = 1;i<=k;i++){
cin>>a;
vis[a] = 1;
}
for(int i = 1;i<=m;i++){
cin>>a>>b;
add(a,b);
add(b,a);
}
for(int i = 1;i<=n;i++){
if(!vis[i]){
ccc = 0;
dfs(i,0);
if(ans == n){
cout<<"Yes\n";
cout<<ccc<<'\n';
memset(vist,0,sizeof(vist));
ddd(i,0);
}else{
cout<<"No\n";
}
return 0;
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...