1 条题解
-
0
Java :
import java.io.*; import java.util.*; public class Main{ static int f[]=new int[1005]; static int r[]=new int[1005]; public static int getRoot(int n){ return f[n]=f[n]==n?n:getRoot(f[n]); } public static void Union(int fA,int fB){ if(r[fA]>=r[fB]){ f[fB]=f[fA]; r[fA]+=r[fB]; }else{ f[fA]=f[fB]; r[fB]+=r[fA]; } } public static void main(String args[]){ Scanner cin=new Scanner(System.in); int N=cin.nextInt(),M=cin.nextInt(); while(M!=0||N!=0){ boolean flag=true; for(int i=1;i<=N;i++){ r[i]=1;f[i]=i; } for(int i=0;i<M;i++){ int A=cin.nextInt(),B=cin.nextInt(); int fA=getRoot(A),fB=getRoot(B); if(fA==fB)flag=false; else Union(fA,fB); } int rt=getRoot(1); for(int i=2;i<=N&&flag;i++) if(getRoot(i)!=rt) flag=false; if(flag)System.out.println("Yes"); else System.out.println("No"); N=cin.nextInt();M=cin.nextInt(); } } }
- 1
信息
- ID
- 1226
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者