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 演算法...