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