alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司
該航空公司一共在n個城市設有業務,設這些城市分別標記為0到n - 1
共有m種航線,每種航線連線兩個城市,並且航線有一定的**
alice和bob現在要從乙個城市沿著航線到達另乙個城市,途中可以進行轉機
航空公司對他們這次旅行也推出優惠,他們可以免費在最多k:種航線上搭乘飛
那麼alice和bob這次出行最少花費多少?
還是分層圖的套路,有k種航線免費,就建k層,每往下一層就說明免費坐了一次航線
有一點很重要,分層圖的題目空間一定要開夠,不要像普通最短路那樣看到點數就跑
還要考慮層數對使用空間的影響
水題,不多說了
**:
#include#define n 1500005
using namespace std;
int n,m,k,s,t,u,v,w;
struct edge
edge[n<<1];
int cnt=1,head[n];
struct node
); dis[s]=0;
while(!q.empty())
); }
} }}templateinline void read(t &res)
int main()
for(register int j=0;j}
for(register int i=0;idijkstra(s);
printf("%d\n",dis[t+k*n]);
return 0;
}
JLOI2011 飛行路線
提交傳送門 師兄們覺得我是不是很挫啊,做了1天多才做出這道裸spfa 人家只是試著打了一下拆點而已嘛 就是spfa只是2維而已 d i 0 代表第i個點 不用免費次數時得最小距離 d i 1 代表第i個點 用免費次數時得最小距離 就很簡單了是不是?description alice和bob現在要乘飛...
JLOI2011 飛行路線
alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在 nnn 個城市設有業務,設這些城市分別標記為 000 到 n 1n 1n 1 一共有 mmm 種航線,每種航線連線兩個城市,並且航線有一定的 alice和bob現在要從乙個城市沿著航線到達另乙個城市,途中可以進行...
JLOI2011 飛行路線
alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在 n 個城市設有業務,設這些城市分別標記為 0 到 n 1 一共有 m 種航線,每種航線連線兩個城市,並且航線有一定的 alice和bob現在要從乙個城市沿著航線到達另乙個城市,途中可以進行轉機。航空公司對他們這次...