BZOJ 2763 飛行路線 最短路 dp

2021-09-27 02:25:33 字數 1256 閱讀 2311

給出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

​表示到當前u

uu這個點還有i

ii次機會的最短路。轉移的時候兩種決策,不使用:dis

v,

idis_

disv,i

​由disu

,i+w

u,

vdis_+w_

disu,i

​+wu

,v​轉移,使用:dis

v,

idis_

disv,i

​由disu

,i+1

dis_

disu,i

+1​轉移。求最短路過程中轉移。

#includeusing namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

const ll inf=long_long_max;

int n,m,k,s,t;

const int n=1e4+7;

struct edge;

vectorg[n];

struct node

};priority_queueq;

ll dis[n][11];

ll solve(int s,int t) );

while(!q.empty()) );}}

for(int j=0;jdis[u][j+1]) );}}

} }ll ans=1e15;

for(int j=0;j<=k;j++)

ans=min(ans,dis[t][j]);

return ans;

}int main() );

g[v].push_back();

} ll ans=solve(s,t);

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

return 0;

}

BZOJ2763 飛行路線(最短路)

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

BZOJ2763 飛行路線(最短路)

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

BZOJ 2763 飛行路線

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