題意:
中文題要點:
等級比較難處理,注意題目中是間接接觸也不行,所以假如酋長等級是5,差距為2,可以交換的等級有(3,4,5),(4,5,6),(5,6,7),也即是區間長度是m,交換中最大的與最小的差為m。所以列舉等級區間,所有可行的區間dijkstra一遍,求總的最小值。還要注意這題每個點最短路徑求出後要加上當前點物品價值,最後求最小。
15386959
seasonal
1062
accepted
208k
0msc++
1297b
2016-04-13 16:28:25
#include#include#include#define inf 0x3f3f3f3f
#define min(a,b) a>b?b:a
int n, m;
int map[105][105],rate[105],dis[105],cost[105];
bool vis[105],limit[105];
int dijkstra()
vis[temp] = false;
for (int j = 1; j <= n; j++)
if (vis[j] && dis[temp] + map[temp][j] < dis[j] && limit[j])
dis[j] = dis[temp] + map[temp][j];
} min = inf;
for (int i = 1; i <= n; i++)//路徑求出最小值還要加上當前物品價值
return min;
}int main()
} int minx = inf;
for (int i = 0; i <= m; i++)//注意不是比較相鄰的等級,要與最大的那個比較,就是區間長度要是m
minx = min(minx, dijkstra());
} printf("%d\n", minx);
return 0;
}
昂貴的聘禮 poj 1062 最短路
沒看好題目條件 隨便寫了個弗洛伊德就交了 實際上兩個身份差距大的人是連間接交易都不允許的 所以列舉每個等級區間並對其用dijkstra演算法找最小值 ac include include include include include include include include include ...
POJ 1062 昂貴的聘禮 最短路
假設乙個起點0,根據題目給出的權值構圖,答案就是從0到1之間的最短路。這裡要注意的是這個等級限制的問題。首先等級限制不是相鄰點之間的限制,而是整體路徑的。等級的限制可以通過假設乙個點為最低點求最短路,我假設某個點是最短路中等級最低的,然後求最短路。每列舉乙個點就求一次最短路,取最小的值。因為你列舉的...
poj 1062昂貴的聘禮(最短路)
題目 昂貴的聘禮 time limit 1000ms memory limit 10000k total submissions 61174 accepted 18489 description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000...