EZOJ 375高速公路

2022-04-30 06:36:10 字數 812 閱讀 5024

分析

我們可以先跑一遍全價的最短路

之後我們列舉這個第k大的**w[i]

將其它邊減這個邊的權值和0取max

在跑出最短路之後加上減去的費用,即w[i]*k

我們發現如果價值大於w[i]的邊小於k個

那麼由於小於w[i]的邊經過之前操作後權值會比原先大所以一定不有

所以我們不難得出一定是這個點正好是第k大時才是最優的

最終所有答案取min即可

**

#includeusing

namespace

std;

#define fi first

#define se second

#define mp make_pair

#define pb push_back

#define int long long

const

int inf = 1e15+7

;int n,m,k,s,t,d[3010],vis[3010],wh,f[3010

];priority_queue

int,int> >q;

vector

int,int> >v[3010

];inline

intdij()}}

return

d[t];

}signed main()

int ans=dij();

for(i=1;i<=m;i++)

cout

}

ccf 高速公路

問題描述 某國有n個城市,為了使得城市間的交通更便利,該國國王打算在城市之間修一些高速公路,由於經費限制,國王打算第一階段先在部分城市之間修一些單向的高速公路。現在,大臣們幫國王擬了乙個修高速公路的計畫。看了計畫後,國王發現,有些城市之間可以通過高速公路直接 不經過其他城市 或間接 經過乙個或多個其...

201509 4 高速公路

鄰接表存圖 include include include define maxn 200010 using namespace std int dfn maxn low maxn int clock,top 當前元素是被訪問的序號,模擬棧的首部 bool instack maxn intstack...

CCF高速公路

新學了tarjan演算法,今天中午之前還沒聽過,用dfs硬寫加了點優化得了70,對路的演算法還是給力,直接滿分。回頭整理一篇關於強連通分量的部落格,另外這次往後就慢慢全用c 了。include include include include define maxsize 10005 using na...