昂貴的聘禮題目
思路:看y總的提高課,自己先想了想,但是不知道區間怎麼處理,看完之後豁然開朗,每次只用處理一段區間,依次列舉區間結束之後最短的便是需要的最少花費,需要定義乙個虛擬遠點,我們用0號點來定義,問題就轉化成了0號點到1號點的最短路
具體**如下
#include
#include
using
namespace std;
const
int n =
110, inf =
0x3f3f3f3f
;int n, m;
int g[n]
[n], level[n]
;int dist[n]
;bool st[n]
;int
dijkstra
(int down,
int up)
return dist[1]
;}intmain()
}int res = inf;
for(
int i=level[1]
- m; i<=level[1]
;++i) res =
min(res,
dijkstra
(i, i+m));
//列舉區間,區間必須包含level[1]不然就不能買1號物品了
cout << res << endl;
return0;
}
昂貴的聘禮 (最短路)
傳送門 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水晶球,那麼只要5000...
昂貴的聘禮 DFS 最短路
description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水晶球,...
最短路徑 昂貴的聘禮
problem description 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠...