bzoj 2763 JLOI2011 飛行路線

2021-07-22 14:18:45 字數 1064 閱讀 6720

description

n個點,m條雙向邊,有k次免費的機會,問最短路。

sample input

5 6 1

0 4

0 1 5

1 2 5

2 3 5

3 4 5

2 3 3

0 2 100

sample output

8

這道題基本演算法是spfa,但需要定乙個f的二維陣列,f[i][j] 表示到編號為i的點用j次免費的機會的最小值。在spfa中要分兩種情況(免費和不免費)。

#include

#include

#include

using

namespace

std;

struct node

a[210000];int len,last[110000];

void ins(int x,int y,int c)

int f[110000][11];

bool v[110000][11];

intlist[110000][11],st,ed;

int main()

memset(f,9999999,sizeof(f));

memset(v,true,sizeof(v));

memset(list,0,sizeof(list));

int head,tail;

list[1][0]=st;list[1][1]=0;v[st][0]=false;

head=1,tail=2;f[st][0]=0;

while(head!=tail)

}if(f[x][c]1] && c//要免費機會}}

v[x][c]=true;

head++;if(head==100000+1)head=1;

}int s=9999999;

for(int i=0;i<=kk;i++)

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

return

0;}

bzoj 2763 JLOI2011 飛行路線

本題我用的二維spfa,dis i j 表示到i點用掉了j次免費機會的最優值,相當於動態規劃,由於資料十分大,普通spfa會t掉3個點,所以考慮堆優化 相信堆優化大家都懂,所以這些提示就夠了 include include includeusing namespace std struct ddji...

bzoj2763 JLOI2011 飛行路線

time limit 10 sec memory limit 128 mb submit 1367 solved 527 submit status discuss alice和bob現在要乘飛機旅行,他們選擇了一家相對便宜的航空公司。該航空公司一共在n個城市設有業務,設這些城市分別標記為0到n 1...

BZOJ 2763 JLOI2011 飛行路線

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