BZOJ 1975 魔法豬學院 A 求K短路

2022-05-26 23:33:11 字數 908 閱讀 9457

顯然每次貪心的走最少消耗的路徑即可。那麼也就是找出最短路,次短路,,,k短路之後消耗e的能量的最多的路徑條數。

也就是裸的a*演算法。

#include using

namespace

std;

typedef

double

lf;const

int n=5005, m=200005

;lf d[n], en;

typedef pair

int>pr;

#define mkpr(x, y) make_pair(x, y)priority_queue

, greater>q;

struct

gr e[m];

intn, ihead[n], cnt;

void add(int x, int

y, lf w) ; ihead[x]=cnt;

}void

dij()

d[n]=0

; q.push(mkpr((lf)

0, n));

while

(q.size())

vis[x]=1

;

for(int i=ihead[x]; i; i=e[i].next) }}

}intgetans()

else

}for(int i=ihead[x]; i; i=e[i].next)

}return

ans;

}}g, g;

intmain()

g.dij();

printf(

"%d\n

", g.getans());

return0;

}

view code

BZOJ 1975 魔法豬學院(K短路)

題意 給出乙個帶權有向圖。求乙個最大的k使得前k短路的長度之和不大於給定的值sum。思路 首先,求出每個點到n的最短路。接著,使用優先佇列,節點為 d,u 首先將 dis 1 1 進隊。由於d在任意時候為一條1到n的路徑的長度,那麼對於邊,d dis u w dis v 為一條新的路徑的長度。vec...

BZOJ 1975 魔法豬學院(A 手寫堆)

time limit 10 sec memory limit 64 mb submit 1941 solved 595 submit status discuss ipig在假期來到了傳說中的魔法豬學院,開始為期兩個月的魔法豬訓練。經過了一周理論知識和一周基本魔法的學習之後,ipig對豬世界的世界本...

1975 Sdoi2010 魔法豬學院

題目鏈結 題目大意 找出1 k短路 題解 x的估價函式f x 取x到結束節點的最短路,這個是準確值,因此複雜度 按廣搜的方式擴充套件節點,每次優先擴充套件估價 實際最小的節點 第i次擴充套件到目標節點,代表找到了第i短路 我的收穫 org include include include includ...