鄰接矩陣強大不解釋:
description
bruce是k國的商人,他在a州成立了自己的公司,這次他的公司生產出了一批效能很好的產品,準備宣傳活動開始後的第l天到達b州進行新品拍賣,期間bruce打算將產品拿到各個州去做推銷宣傳,以增加其影響力。
k國有很多個州,每個州都與其他一些州相鄰,但是k國對商人作宣傳卻有一些很奇怪的規定:
1、 商人只能從某些州到達另外一些州,即連通路線是單向的,而且有些州可能是到達不了的。
2、 商人不允許在同乙個州連續宣傳兩天或以上,每天宣傳完必須離開該州。
3、 商人可以多次來到同乙個州進行宣傳。
"我必須找出一條影響力最大的路線才行",bruce想,"但我首先必須知道到底有多少這種符合規定的宣傳路線可供我選擇。"現在bruce把任務交給了你。並且出於考慮以後的需要,你還要幫他算出給出的兩州之間的路線的總數。
input
輸入檔案第一行包含三個整數n,m,l(1≤n,l≤100),分別表示k國的州數、連通路線的數量,以及多少天後必須到達b州。接下來有m行,每行一隊整數x,y(1≤x,y≤n),表示商人能從x州到達y州。
第m+2行為乙個整數q(1≤q≤100),表示bruce有q個詢問。下面q行每行兩個整數a,b(1≤a,b≤n),即a、b州的位置。
output
輸出檔案包含q行,每行乙個整數t,為所求的從a州到b州滿足上述規定的路線總數。
輸入資料中的詢問將保證答案t在長整數範圍內,即t<231。
sample input
4 5 6
1 22 3
3 44 1
2 42
1 44 2
sample output21
problem source
zsuacm team member
#include #include using namespace std;
int main()
; int b[100][100]=;
int c[100][100]=;
cin>>n>>m>>l;
for(int i=0;i>x>>y;
--x;
--y;
++a[x][y];
++b[x][y];
} for(int t=0;t>n;
for(int i=0;i>x>>y;
cout<
1211 商人的宣傳
我記得這是離散數學課上學過的知識,好像是圖的那章,關於連通性問題。而且還有更為快速的演算法。本題實際就是計算路徑長度為l的從起點到末點的路徑的條數。可以有屬性歸納法證明,該解法的正確性。include include using namespace std intconst maxn 500 int...
1211 商人的宣傳
tag 動態規劃 矩陣乘法 題目的意思講得不是很清楚。起點是不算第一天的,路途不算時間,而且要剛好在第l天到達目的地,不能提前到達。如果乙個矩陣m代表鄰接矩陣,m的n次冪 m n 便是經過n步能到達的路徑數。用原始方法時間複雜度為o n o m 3 因為我沒想到log n 次的矩陣演算法,所以用了動...
Sicily 1211 商人的宣傳
題目鏈結在此。受到這位大神的啟示。動態規劃。狀態轉移方程 f l a b f l 1 a t c t b f l a b 表示 l 天之內 從 a 地到達 b 地的路線總數,c a b 表示 從 a 地可以直接到達 b 地,其值等於1 如下 include include include pragm...