BZOJ2763 飛行路線(最短路)

2022-03-20 07:12:49 字數 1137 閱讀 9281

bzoj

alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在n個城市設有業務,設這些城市分別標記為0到n-1,一共有m種航線,每種航線連線兩個城市,並且航線有一定的**。alice和bob現在要從乙個城市沿著航線到達另乙個城市,途中可以進行轉機。航空公司對他們這次旅行也推出優惠,他們可以免費在最多k種航線上搭乘飛機。那麼alice和bob這次出行最少花費多少?

資料的第一行有三個整數,n,m,k,分別表示城市數,航線數和免費乘坐次數。

第二行有兩個整數,s,t,分別表示他們出行的起點城市編號和終點城市編號。(0<=s,t只有一行,包含乙個整數,為最少花費。

5 6 1

0 40 1 5

1 2 5

2 3 5

3 4 5

2 3 3

0 2 100

發現\(k\)非常小

於是拆點跑最短路就行了

\(spfa\)有點卡。。。

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define ll long long

#define rg register

#define max 11111

inline int read()

int n,m,k,s,t;

struct linee[max*10];

int h[max],cnt=1;

inline void add(int u,int v,int w);h[u]=cnt++;}

int f[11][max];

bool vis[11][max];

void spfa()

if(t!=k&&f[t+1][v]>f[t][u])

}vis[t][u]=false; }}

int main()

spfa();

int ans=2e9;

for(int i=0;i<=k;++i)ans=min(ans,f[i][t]);

printf("%d\n",ans);

return 0;

}

BZOJ2763 飛行路線(最短路)

bzoj alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在n個城市設有業務,設這些城市分別標記為0到n 1,一共有m種航線,每種航線連線兩個城市,並且航線有一定的 alice和bob現在要從乙個城市沿著航線到達另乙個城市,途中可以進行轉機。航空公司對他們這次旅行...

BZOJ 2763 飛行路線 最短路 dp

給出n 1 e4 n leq1e4 n 1e 4個點,m 5 e4 m leq5e4 m 5e 4條邊的無向圖。從s ss作為起點出發到終點t tt。有k 10 k leq10 k 10 次機會可以使得當前這條邊的代價為0 00,求最少代價。k kk很小,用dis u,idis disu,i 表示到...

BZOJ 2763 飛行路線

2763 jloi2011 飛行路線 time limit 10 sec memory limit 128 mb description alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在n個城市設有業務,設這些城市分別標記為0到n 1,一共有m種航線,每種航線連...