poj1062 迪傑斯特拉演算法的變形應用

2021-10-19 12:56:50 字數 1175 閱讀 9177

1.看不出這題是最短路問題,可以用迪傑斯特拉演算法。。。

2.物品交換還有等級限制,加大難度。

#include

#include

#include

#include

using namespace std;

#define inf 0x3f3f3f3

#define max 105

#define min(a,b) (aint sta[max]

;int map_[max]

[max]

;int graph[max]

[max]

;int dis[max]

;int vis[max]

;int n;

intdijsktra()

ans=dis[1]

;//坑,要跳過第乙個進行判斷

vis[1]

=1;for

(int i=

0; iif(min_==inf)

//不能省略,起先以為是優化程式。

vis[v]=1

;for

(int j=

1; j<=n; j++)}

dis[v]

=dis[v]

+map_[v]

[v];

ans=

min(ans,dis[v]);

}return ans;

}int

main()

}for

(int i=

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

left=sta[1]

-m>

0?sta[1]

-m:0

; right=left+m;

while

(left<=sta[1]

)//判斷是否超出區間

}for

(int i=

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

}int dollar=

dijsktra()

; ans=

min(ans,dollar)

; left++

;//---->列舉區間

right++;}

cout<}return0;

}

POJ1062 昂貴的聘禮 列舉 迪傑斯特拉)

description input 輸入第一行是兩個整數m,n 1 n 100 依次表示地位等級差距限制和物品的總數。接下來按照編號從小到大依次給出了n個物品的描述。每個物品的描述開頭是三個非負整數p l x x n 依次表示該物品的 主人的地位等級和替代品總數。接下來x行每行包括兩個整數t和v,分...

迪傑斯特拉演算法

if object id t test is not null drop table t test gocreate table dbo t test id int identity 1,1 not null primary key,自增字段,無意義 header varchar 500 第一點的名...

迪傑斯特拉演算法

dijkstra 迪傑斯特拉 演算法是典型的最短路徑路由演算法,用於計算乙個節點到其他所有節點的最短路徑。主要特點是以起始點為中心向外層層擴充套件,直到擴充套件到終點為止。dijkstra演算法 能得出最短路徑的最優解,但由於它遍歷計算的節點很多,所以效率低。dijkstra演算法是很有代表性的最短...