求重要城市的代码,未经过测试,dfs暴力求解
public class Main9 { public static void main(String[] args){ /** Scanner scanner=new Scanner(System.in); String a=scanner.nextLine(); String[] strings=a.split(" "); int k1=Integer.valueOf(strings[0]); int k2=Integer.valueOf(strings[1]); int[][] kk=new int[k1+1][k1+1]; for(int i=0;i<k2;i++){ String a2=scanner.nextLine(); String[] strings1=a2.split(" "); int n1=Integer.valueOf(strings1[0]); int n2=Integer.valueOf(strings1[1]); kk[n1][n2]=1; } **/ int[][] kk=new int[5][5]; kk[1][3]=1; kk[2][1]=1; kk[3][2]=1; kk[4][3]=1; int[][] keda=new int[5][5]; for(int i=1;i<5;i++){ dfs(keda,kk,i,i,0); } for(int i=1;i<keda.length;i++){ for(int j=1;j<keda.length;j++){
System.out.print(keda[i][j]); }
System.out.println(); } int count =0; for(int i=1;i<kk.length;i++){ int chudu=0; for(int d=1;d<kk.length;d++){ if(keda[i][d]==1){
chudu++; }
} int rudu=0; for(int j=1;j<kk.length;j++){ if(keda[j][i]==1){
rudu++; }
} if(rudu>chudu){
count++; }
}
System.out.println(count); } public static void dfs(int[][] keda,int[][] kk,int now,int x,int count){ if(now==x){
count++; } if(count==2){ return; } for(int i=1;i<keda.length;i++){ if(kk[x][i]==1&&now!=i&&keda[now][i]!=1){
keda[now][i]=1; dfs(keda,kk,now,i,count); }
}
}
}