昂貴的聘禮
time limit:
memory limit:
total submissions:
accepted:
description
input
輸入第一行是兩個整數m,n(1 <= n <= 100),依次表示地位等級差距限制和物品的總數。接下來按照編號從小到大依次給出了n個物品的描述。每個物品的描述開頭是三個非負整數p、l、x(x < n),依次表示該物品的**、主人的地位等級和替代品總數。接下來x行每行包括兩個整數t和v,分別表示替代品的編號和"***格"。
output
輸出最少需要的金幣數。
sample input
1 4sample output10000 3 2
2 8000
3 5000
1000 2 1
4 200
3000 2 1
4 200
50 2 0
5250source
浙江
1//176k 0ms c++ 1381b 2013-11-22 12:07:242/*
34題意:中文..56
最短路徑:
7小變異..主要是構圖和列舉等級不好想到,注意等級這一點,題目說得不是
8很明確,等級低的不可以向等級高的交換,等級高的 在差別為m的情況下才能和等級低的交換910
然後構好圖後以虛構的0為起點,遍歷n個點然後找到0到1的最短路即為答案
1112
*/13 #include14 #include
15#define inf 0x7fffffff
16int
n,m;
17int g[105][105
];18
int vis[105],d[105
];19
int lv[105],num[105
];20
int dij() //
dij演算法
2132
if(v==0) break
;
33 vis[v]=1;34
for(int j=1;j<=n;j++)
35if(!vis[j] && g[v][j]!=inf && d[j]>d[v]+g[v][j])
36 d[j]=d[v]+g[v][j];37}
38return d[1
];39}40
int main(void)41
54}55int min=inf;
56for(int i=1;i<=n;i++)
63int temp=dij();
64if(min>temp) min=temp;65}
66 printf("
%d\n
",min);67}
68return0;
69 }
昂貴的聘禮 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...