第三题:差一个排序输出,,, import java.util.Scanner; public class Test006 { public static void main(String[] args)  { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); int group = scanner.nextInt(); while (group >= 1)  { int userNum = scanner.nextInt(); int target = scanner.nextInt(); int degree = scanner.nextInt(); int[][] users = new int[userNum][userNum]; int[][] degrees = new int[userNum][userNum]; for (int j = 0; j < userNum; j++)  { for (int k = 0; k < userNum; k++)  { if (j == k)  { users[j][k] = -1; degrees[j][k] = -1; }  else  { users[j][k] = 0; degrees[j][k] = 0; } } } int num = scanner.nextInt(); for (int i = 0; i < num; i++)  { int user1 = scanner.nextInt(); int user2 = scanner.nextInt(); users[user1][user2] = users[user2][user1] = scanner.nextInt(); degrees[user1][user2] = degrees[user2][user1] = 1; } deal(users, degrees,target); for (int l = 0; l < userNum; l++)  { if (degrees[target][l] == degree)  { System.out.print((users[target][l]) + " "); } } group--; } } public static void deal(int[][] array, int[][] degree, int row)  { int rows = array.length; for(int col = 0; col < rows;col++) { if(array[row][col] != -1 && array[row][col] != 0) { for(int j  = 0 ; j < rows; j++) { if(array[col][j] != -1 && array[col][j] != 0 && array[row][j] == 0) { array[j][row] = array[row][j] = array[col][j] + array[row][col]; degree[j][row] = degree[row][j] = degree[col][j] + degree[row][col]; } } } } }
点赞 1

相关推荐

牛客热帖

牛客网
牛客企业服务