第一题代码
public class Main {
public static String isCover(int[][] edge,int N){
String s = "Yes";
int [] sum = new int[N+1];
for(int i=1;i<N+1;i++){
for(int j=1;j<N+1;j++){
sum[i]+=edge[i][j];
}
}
for(int i=1;i<N+1;i++){
for(int j=1;j<N+1;j++){
if(edge[i][j]==0){
if(sum[j]!=sum[i]) s="No";
}
}
}
return s;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
while(T>0){
int N = scan.nextInt();
int M = scan.nextInt();
int X,Y;
int[][] edge = new int[N+1][N+1];
for(int i=0;i<M;i++){
X =scan.nextInt();
Y = scan.nextInt();
edge[X][Y] = 1;
edge[Y][X] = 1;
}
String s = isCover(edge, N);
System.out.println(s);
T--;
}
}
}
/*
直接 ac 100%, 不需要 bsf, dfs ,直接两个for循环就可以
*/
import java.util.*;
public class Main {
public static class Node{
public int value;
public ArrayList<Node> nexts;
public boolean pass;
public Node(int value){
this.value = value;
nexts = new ArrayList<>();
pass = false;
}
}
public static void process(Scanner in){
int n = in.nextInt();
int m = in.nextInt();
HashMap<Integer, Node> map = new HashMap<>();
for(int i = 0; i < n; i++){
map.put(i+1, new Node(i+1));
}
for(int i = 0; i < m; i++){
int f = in.nextInt();
int s = in.nextInt();
Node nf = map.get(f);
Node ns = map.get(s);
nf.nexts.add(ns);
ns.nexts.add(nf);
}
Node n1 = map.get(1);
map.remove(1);
List<Node> xl = n1.nexts;
List<Node> nxl = new ArrayList<>();
for (Map.Entry<Integer, Node> entry : map.entrySet()) {
if(!xl.contains(entry.getValue())){
nxl.add(entry.getValue());
}
}
boolean pan = false;
for(Node node : nxl){
for(Node node1: xl){
if(!node.nexts.contains(node1)){
pan = true;
break;
}
}
}
if(pan){
System.out.println("No");
}else{
System.out.println("Yes");
}
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int n = in.nextInt();
for(int i = 0; i < n; i++){
process(in);
}
}
}