題目鏈結
題意:在有費用k限制的條件下,求從1到n的最短距離,如果最短距離相同求費用最小的,邊為有向邊,其中可能有
多個相同的源點和目標點,但是距離和費用不同。
分析:用bfs和鄰接表來把每乙個邊搜一下,因為用了優先佇列,所以先到n的一定是最小的 。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8#define ll long long
9const
int maxn = 100+50;10
using
namespace
std;
11int
k, n, r;
12struct
node
1321
} ne, pos;
22 vectore[maxn];
2324
void bfs() //
裡面不能加vis陣列,因為乙個點可能走多次
2541
for(i = 0; i < e[pos.v].size(); i++)
4249
}50 printf("
-1\n");
51}52int
main()
5365
bfs();66}
67return0;
68 }
pku 1724 ROADS BFS 優先佇列
題意 bob現在有的錢數為k,他想從城市1到城市n,給出m條連線兩個城市的有向邊,並且給出路的長度w,和經過這條路要交的錢數c。問bob在花的過路費不超過k的前提下能到達城市n的最短路徑為多長。思路 才開始我想spfa來做,開兩個陣列dis記錄距離最短disw記錄話費最小,在鬆弛的時候進行距離與費用...
poj 1724 優先佇列 Dij
題意 k點點數,n個點,m條邊,每條邊有權值以及通過時會消耗的點數,求在消耗點數不超過k點的情況下,從1到n的最短路徑。分析 顯然是乙個最短路的變形,而且是一種常見的模型。最短路本身是乙個求解最優解的問題,在這裡加多了乙個限制條件,就是點數,所以變為 在一定的限制條件下求解乙個最優化問題 的模型,這...
POJ 1724 Roads 限制最短路
roads 題意 給出一張n個節點的圖,每條邊有長度與花費兩種權值。求在花費c內從點1到點n的最短路徑。有限制條件的最短路。dijkstra將滿足不超過花費的被更新點加入優先佇列 在佇列裡按照長度排序。include include using namespace std const int sn ...