2016藍橋杯算法訓練——關聯矩陣

算法訓練  關聯矩陣
問題描述
  有一個n個結點m條邊的有向圖,請輸出他的關聯矩陣。
輸入格式
  第一行兩個整數n、m,表示圖中結點和邊的數目。n<=100,m<=1000。
  接下來m行,每行兩個整數a、b,表示圖中有(a,b)邊。
  注意圖中可能含有重邊,但不會有自環。
輸出格式
  輸出該圖的關聯矩陣,注意請勿改變邊和結點的順序。
樣例輸入
5 9
1 2
3 1
1 5
2 5
2 3
2 3
3 2
4 3
5 4
樣例輸出
1 -1 1 0 0 0 0 0 0
-1 0 0 1 1 1 -1 0 0
0 1 0 0 -1 -1 1 -1 0
0 0 0 0 0 0 0 1 -1
0 0 -1 -1 0 0 0 0 1

代碼:
import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int m = in.nextInt();
		int[][] temp = new int[105][1005];
		for (int i = 1; i <=m; i++) {
			int a = in.nextInt();
			int b = in.nextInt();
			temp[a][i] = 1;
			temp[b][i] = -1;
		}
		for (int i = 1; i <=n; i++) {
			System.out.print(temp[i][1] + " ");
			for (int j = 2; j <=m; j++) {
				System.out.print(temp[i][j] + " ");
			}
			System.out.println();
		}
	}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章