征服遊戲 Floyd演算法

2021-10-11 04:42:14 字數 992 閱讀 4388

conquer是一款桌面遊戲,在這個遊戲裡,幾個相互對立的玩家要滅掉對方的國家。遊戲板上分成很多假設的國家。當輪到乙個玩家時,乙個國家的軍隊只能攻擊邊界相連的敵對國家。在征服乙個國家之後,軍隊就可以移動到剛被征服的國家。在遊戲期間,玩家通常要征服一連串的國家,以便把大量軍隊從起始國家轉移到目標國家。通常,玩家在選擇要征服路徑上的國家時,盡量使要征服的國家數量最少。假定遊戲板上有n個國家,編號為0至n-1。

請編寫程式,對於給定的起始國家和目標國家,計算到達目標國家至少需要征服多少個國家,不必輸出征服的國家序列,只輸出征服的國家數量即可。例如下圖所示的國家地圖,從起始國家0到目標國家4,最少需征服2個國家。

輸入第一行為3個整數n、e和m,均不超過1000。n表示國家數。接下來e行表示國家間的接壤情況,每行為兩個整數i和j,表示國家i與國家j接壤。接下來m行表示m組查詢,每行為兩個整數x和y,表示起始國家和目標國家編號。

輸出為m行,即對於給定的x和y,需要征服國家的最少數量。

5 6 2

0 10 3

1 22 3

1 42 4

0 41 2

2

1

#includeusing namespace std;

typedef long long int ll;

const int n=1005;

int a[n][n];

int inf=1005;

int main()

for(int k=0;ka[i][k]+a[k][j] )

a[i][j]=a[i][k]+a[k][j]; }}

}for(int i=0;i>x>>y;

cout<

}return 0;

}

演算法之路之征服上海交大的oj 求和遊戲

求和遊戲 description 石柱上有一排石頭鍵盤,每個鍵上有乙個整數。請你在鍵盤上選擇兩個鍵,使這兩個鍵及其之間的鍵上的數字和最大。如果這個最大的和不為正,則輸出 game over input format 第1行 鍵的個數n。第2.n 1行 鍵上的數字整數 ai 100 ai 100 對於...

Floyd演算法思想

本來 量如此小的演算法不用出模板了,但是的確思想還是很好的。1.定義概覽 floyd warshall演算法 floyd warshall algorithm 是解決任意兩點間的最短路徑的一種演算法,可以正確處理有向圖或負權的最短路徑問題,同時也被用於計算有向圖的傳遞閉包。floyd warshal...

Floyd演算法簡介

演算法定義 floyd warshall演算法 floyd warshall algorithm 是解決任意兩點間的最短路徑的一種演算法,可以正確處理有向圖或負權的最短路徑問題,同時也被用於計算有向圖的傳遞閉包。floyd warshall演算法的時間複雜度為o n 3 空間複雜度為o n2 演算法...