現在哈利·波特的手裡有一本教材,裡面列出了所有的變形魔咒和能變的動物。老師允許他自己帶乙隻動物去考場,要考察他把這只動物變成任意乙隻指定動物的本事。於是他來問你:帶什麼動物去可以讓最難變的那種動物(即該動物變為哈利·波特自己帶去的動物所需要的魔咒最長)需要的魔咒最短?例如:如果只有貓、鼠、魚,則顯然哈利·波特應該帶鼠去,因為鼠變成另外兩種動物都只需要念4個字元;而如果帶貓去,則至少需要念6個字元才能把貓變成魚;同理,帶魚去也不是最好的選擇。
輸入說明:輸入第1行給出兩個正整數n (
≤100
)和m,其中n
是考試涉及的動物總數,
m是用於直接變形的魔咒條數。為簡單起見,我們將動物按1~
n編號。隨後
m行,每行給出了3個正整數,分別是兩種動物的編號、以及它們之間變形需要的魔咒的長度(≤1
00),數字之間用空格分隔。
輸出哈利·波特應該帶去考場的動物的編號、以及最長的變形魔咒的長度,中間以空格分隔。如果只帶1只動物是不可能完成所有變形要求的,則輸出0。如果有若干只動物都可以備選,則輸出編號最小的那只。
6 11
3 4 70
1 2 1
5 4 50
2 6 50
5 6 60
1 3 70
4 6 60
3 6 80
5 1 100
2 4 60
5 2 80
4 70
#include "iostream"
using namespace std;
#define inf 101
int map[101][101];
void floyd(int v)
}int main()
while (e--)
floyd(v);
int min = inf;
int max = 0;
int index;
for (int i = 1; i <= v; i++)
if (max < min)
}if (min == inf)
cout << index << " " << min << endl;
return 0;
}
資料結構與演算法(二十一)
插入排序回顧 插入排序演算法 definsertsort alist for index in range 1 len alist currentvalue alist index position index while position 0and alist position 1 current...
第二十一章 資料結構
知識點 1 棧 stack 資料先進後出。方法 is empty 查詢資料是否為空 push 新增資料 pop 移除資料 peek 返回頂部元素 size 查詢資料量 2 佇列 queue 資料先進先出。方法 enqueue 新增元素 dequeue 移除元素 is empty 查詢是否為空 siz...
二十一 資料結構學習筆記 1
一.抽象資料型別 抽象資料型別 abstract data type,adt 是一些操作的集合。抽象資料型別是數學的抽象,在adt定義中根本沒涉及如何實現這些操作。例如 表 集合 圖及它們的操作,它們都可以看作抽象資料型別,就像整數 實數和布林量是資料型別一樣。整數 實數以及布林量有與它們相關的操作...