思路:要求對於最短路上的點,不能出現等級之差大於m,於是我們可以列舉,假設酋長的等級為level,於是這個區間範圍[level-m,level],[level-m+i,level+i],......,[level,level+m]都是可行的,對於列舉的每個區間範圍,做一次spfa即可,最終結果取最小值即可。
1 #include2 #include3 #include4 #include5 #include6view codeusing
namespace
std;
7#define maxn 111
8#define inf 1<<30 910
intvalue[maxn],level[maxn];
11int
map[maxn][maxn];
12bool
vis[maxn],mark[maxn];
13int
dist[maxn];
14int
n,m,x;
1516
intspfa()
1731}32
}33}34
int ans=inf;
35for(int i=1;i<=n;i++)
39return
ans;40}
4142
intmain()
4353
}54 min=inf;
55for(int i=0;i<=m;i++)
61 min=min(min,spfa());62}
63 printf("
%d\n
",min);64}
65return0;
66}6768
6970
71
POJ 1062 有限制的最短路
題目鏈結 題意 n個人每人有乙個物品,每個物品可以直接買,也可以通過其他物品抵押加上少量的錢買,每個人有乙個等級,經過若干次交換購買的人中的最大等級差不能超過m。求要得到第一件物品的最少花費是多少?思路 如果沒有等級約束就是乙個最短路的模板題,根據a物品加w個金幣換到b物品,可以建立一條有向邊a b...
poj 1062 昂貴的聘禮 有限制的最短路
題意 探險家想娶酋長的女兒,需要昂貴的聘禮,但可以用其他物品加 替代,其他物品也可用另外的物品和 替代,求探險家最少需多少金幣可以娶到酋長的女兒?注意 等級限制 如果兩人地位等級差距超過了m,就不能 間接交易 但酋長的等級不一定最高 分析 求有等級限制的最短路,可以將每個物品 包括酋長允諾 看成乙個...
Poj1062 昂貴的聘禮 最短路加限制
題意 年輕的探險家來到了乙個印第安部落裡。在那裡他和酋長的女兒相愛了,於是便向酋長去求親。酋長要他用10000個金幣作為聘禮才答應把女兒嫁給他。探險家拿不出這麼多金幣,便請求酋長降低要求。酋長說 嗯,如果你能夠替我弄到大祭司的皮襖,我可以只要8000金幣。如果你能夠弄來他的水晶球,那麼只要5000金...