試題 演算法訓練 關聯矩陣

2022-06-05 05:39:08 字數 1981 閱讀 6373

資源限制

時間限制:1.0s   記憶體限制:512.0mb

問題描述

有乙個n個結點m條邊的有向圖,請輸出他的關聯矩陣。

輸入格式

第一行兩個整數n、m,表示圖中結點和邊的數目。n<=100,m<=1000。

接下來m行,每行兩個整數a、b,表示圖中有(a,b)邊。

注意圖中可能含有重邊,但不會有自環。

輸出格式

輸出該圖的關聯矩陣,注意請勿改變邊和結點的順序。

樣例輸入

5 91 2

3 11 5

2 52 3

2 33 2

4 35 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

首先需要知道什麼是關聯矩陣,關聯矩陣即用乙個矩陣來表示各個點和每條邊之間的關係。

1、對於乙個無向圖g,pxq, p為頂點的個數,q為邊數。b

ij 表示在關聯矩陣中點i和邊j之間的關係。若點i和邊j之間是連著的,則b

ij = 1. 反之,則b

ij = 0.

注意,每一行值的總和為該點的度.

2、對於有向圖,若b

ij = 1,表示邊j離開點i。 若b

ij = -1, 表示邊j進入點i。 若b

ij = 0,表示邊j和點i不相關聯。

了解了關聯矩陣的概念之後問題就迎刃而解了.

1 #include 2 #include 3 #include 4 #include 5 #include 

6 #include 7 #include 8

#define inf 0x3f3f3f3f

9#define zero 1e-7

1011

using

namespace

std;

12 typedef long

long

ll;13

const ll mod=1000000007;14

const ll max_n=1e5+5;15

int arr[105][1005]=;

16int n, m;//

結點數,邊數

1718

intmain()

26for(int i=1; i<=n; i++)

30 printf("\n"

);31}32

return0;

33}34/*

353 10

361 2

371 3

383 2

392 3

403 2

413 1

421 3

432 3

442 1

453 1

4647

1 1 0 0 0 -1 1 0 -1 -1

48-1 0 -1 1 -1 0 0 1 1 0

490 -1 1 -1 1 1 -1 -1 0 1

50*/

※注意輸出格式為%2d.

試題 演算法訓練 關聯矩陣

試題 演算法訓練 關聯矩陣 資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 有乙個n個結點m條邊的有向圖,請輸出他的關聯矩陣。輸入格式 第一行兩個整數n m,表示圖中結點和邊的數目。n 100,m 1000。接下來m行,每行兩個整數a b,表示圖中有 a,b 邊。注意圖中可能含有...

藍橋杯 試題 演算法訓練 關聯矩陣

問題描述 有乙個n個結點m條邊的有向圖,請輸出他的關聯矩陣。輸入格式 第一行兩個整數n m,表示圖中結點和邊的數目。n 100,m 1000。接下來m行,每行兩個整數a b,表示圖中有 a,b 邊。注意圖中可能含有重邊,但不會有自環。輸出格式 輸出該圖的關聯矩陣,注意請勿改變邊和結點的順序。樣例輸入...

演算法訓練 關聯矩陣

演算法訓練 字串統計 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個長度為n的字串s,還有乙個數字l,統計長度大於等於l的出現次數最多的子串 不同的出現可以相交 如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。輸入格式 第一行乙個數字l。第二行是字串s。l大於0,且...