#include<bits/stdc++.h>
using namespace std;
int main(void){
int N, M, a, b, c[100005], g[100005] = {0};
set<int> s;
fill(c, c+100005, 100000);
scanf("%d", &N);
for(int i = 0; i < N; i++){
scanf("%d %d", &a, &b);
c[a] = b, c[b] = a;
}
scanf("%d", &M);
for(int i = 0; i < M; i++){
scanf("%d", &a);
g[a] = 1;
}
for(int i = 0; i < 100000; i++){
if(g[i] == 1 && g[c[i]] != 1)
s.insert(i);
}
printf("%d\n", s.size());
for(auto it = s.begin(); it != s.end(); it++){
if(it != s.begin())
printf(" ");
printf("%05d", *it);
}
return 0;
}
PAT(A) 1121 Damn Single (25 point(s))
最新推荐文章于 2021-08-27 21:37:26 发布
这篇博客介绍如何使用C++实现图的邻接矩阵操作,通过深度优先搜索和广度优先搜索算法,找出图中顶点间的连通性,并重点展示了在输入N个节点和边的关系后,如何通过输入M次查询来查找特定顶点是否与其他顶点相连。

324

被折叠的 条评论
为什么被折叠?



