poj 1062 昂貴的聘禮 最短路

2022-05-11 04:36:08 字數 949 閱讀 4513

中文題 題意就不說了,注意題目裡說的是所有的人等級差不能超過乙個值,而不是兩個兩個之間不能超過(這裡題意搞錯了wa半天),

建好圖,列舉可以在這個最短路裡的最高端和最低階再跑最短路 得到最小值就可以了。

1 #include2 #include3 #include4 #include5

using

namespace

std;

6#define inf 99999999

7struct nodep[1002];8

int g[102][102],d[102];9

bool vis[102

];10

11int dij(int s,int n,int min1,int

max1)

1227 vis[mini]=true;28

for(int i=1;i<=n;i++)

29if(p[i].rank1>=min1&&p[i].rank1<=max1&&d[mini]+g[mini][i]30 d[i]=d[mini]+g[mini][i];31}

32 minn=inf;

33for(int i=1;i<=n;i++)

3439

return

minn;40}

4142

intmain()

4358}59

int temp,ans=inf;

60 temp=p[1

].rank1;

61 temp=max(p[1].rank1-c,0

);62

for(int i=temp;i<=p[1].rank1;i++)

6369 printf("

%d\n

",ans);70}

71 }

昂貴的聘禮 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...