BZOJ2763 飛行路線(最短路)

2021-08-17 18:08:47 字數 1246 閱讀 7593

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

非常小

於是拆點跑最短路就行了 sp

fa有點卡。。。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

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種航線,每種航線連...