编程语言:Java
题目:
题解:水题
结果:AC
import java.io.*;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class Main {
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static Scanner sc = new Scanner(new BufferedInputStream(System.in));
static int [][] graph=new int[10][10];
static int n,m;
static boolean[] flag=new boolean[10];
public static void main(String[] args) throws IOException {
n=sc.nextInt();
m=sc.nextInt();
for(int i=0;i<m;i++){
int se=sc.nextInt();
int ee=sc.nextInt();
graph[se][ee]=1;
graph[ee][se]=1;
}
for(int i=0;i<n;i++){
if(!flag[i]){
flag[i]=true;
out.print("{ ");
dfs(i);
out.println("}");
}
}
Arrays.fill(flag,false);
for(int i=0;i<n;i++){
if(!flag[i]){
flag[i]=true;
out.print("{ ");
bfs(i);
out.println("}");
}
}
out.flush();
}
private static void bfs(int i) {
LinkedBlockingQueue<Integer> que=new LinkedBlockingQueue<>();
que.add(i);
while(!que.isEmpty()){
int t=que.poll();
out.print(t+" ");
for(int j=0;j<n;j++){
if(!flag[j]&&graph[t][j]==1){
flag[j]=true;
que.add(j);
}
}
}
}
private static void dfs(int i) {
out.print(i+" ");
for(int j=0;j<n;j++){
if(!flag[j]&&graph[i][j]==1){
flag[j]=true;
dfs(j);
}
}
}
}