假設乙個起點0,根據題目給出的權值構圖,答案就是從0到1之間的最短路。
這裡要注意的是這個等級限制的問題。
首先等級限制不是相鄰點之間的限制,而是整體路徑的。
等級的限制可以通過假設乙個點為最低點求最短路,我假設某個點是最短路中等級最低的,然後求最短路。每列舉乙個點就求一次最短路,取最小的值。
因為你列舉的點已經是等級最低的了,所以不能有比自己還低的,而且比自己高的不能超過m。
#include #include #include #include #include #include #include #include using namespace std;
const int maxn = 210+10;
const int inf = 0x3f3f3f3f;
const double esp = 1e-6;
struct edge edge[maxn*maxn];
int d[maxn], head[maxn], edge_cnt, rank[maxn];
bool vis[maxn];
void add (int u, int v, int w)
int dij(int x, int n, int k) }}
return d[1];
}int main(void)
} int ans = inf;
for(int i = 1; i <= n; ++i)
printf("%d\n", ans);
return 0;
}
昂貴的聘禮 poj 1062 最短路
沒看好題目條件 隨便寫了個弗洛伊德就交了 實際上兩個身份差距大的人是連間接交易都不允許的 所以列舉每個等級區間並對其用dijkstra演算法找最小值 ac include include include include include include include include include ...
poj 1062昂貴的聘禮(最短路)
題目 昂貴的聘禮 time limit 1000ms memory limit 10000k total submissions 61174 accepted 18489 description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000...
最短路 昂貴的聘禮 POJ 1062
昂貴的聘禮 poj 1062 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水...