poj1062解題報告(Dijskstra)

2021-07-03 14:50:11 字數 831 閱讀 8154

題目大意:中文題,不多解釋。。。。

解題思路:dijkstra,結點就是物品的編號,邊權就是優惠之後的**。

但需要注意的是還有個等級限制,我用的大牛的思路,即列舉等級區間,假如這個酋長的等級為5,而交易等級限制為2,則需要列舉的區間為(3,4,5) (4,5,6)(5,6,7)分別再找出整個圖中符合區間段的子圖,在子圖中使用dijkstra

#include#include#include#includeusing namespace std;

const int maxn=100+10;

const int inf=(1<<30);

int level[maxn],x,limit[maxn],val[maxn];

int map[maxn][maxn],dis[maxn],path[maxn],m,n,vis[maxn];

void init()

int dijkstra(int src)

}vis[pos] = 1;

for(j = 1; j<=n; j++)

if(limit[j]&&dis[j]>dis[pos]+map[pos][j])

dis[j] = dis[pos]+map[pos][j];

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

return result;

}int main()

}int t=inf;

for(int i=0;i<=m;i++)//等級區間長度為m時

t=min(t,dijkstra(1));

}printf("%d\n",t);

}}

poj1062解題報告

題意 就是乙個搜尋,但是是一顆樹的搜尋,在這裡要以最方便的資料結構存放,以前每台做過這種樹的題,也不會構造,現在給予自己的理解,也算可以自己做出來了。思路 我是用dfs做的,思路比較簡單,但是多了乙個要求,等級!但是只要認真分析就沒事的。注意 1.酋長的等級不是最高的 2.探險家與地等級的交易,如果...

poj 1062 昂貴的聘禮 解題報告

這一題只要想到如何建圖,就不太難解決了。假設對於編號為 i 的物品,如果它得到物品 j 後 從 pricei 降低到 pricej 的話,就用乙個cost i j pricej。也就是從物品 i 到物品 j 連一條有向邊。每乙個編號的物品都這樣處理,然後套用dijk 演算法,求出從每個點出發的最短路...

poj 1062 昂貴的聘禮

這個題是乙個簡單的樹形dp,只是有乙個地位差限制,可以列舉可行區間,在可行區間裡進行dp.include include include include include include include include include include includeusing namespace st...