神即將帶領一些人去他們的孤寂之境,由於這個世界的不穩定,地點之間的有向道路會不定期地毀壞,出於工作準備,神想知道在某些道路毀壞之後某兩點之間的最短路。就是給定乙個有向圖,現有兩個操作,操作 1 是刪除一條邊(一條邊可重複刪除),操作 2是詢問兩個點之間的最短路。
對於 30% 的資料:n,m ≤ 10
對於 50% 的資料:n,m ≤ 50
對於 100% 的資料:n ≤ 200,m ≤ 100000, 操作 1 不超過 200 次,邊權不超過 10000
floyd,又是刪邊轉換成加邊。
每次加一條邊,只用這一條邊去鬆弛這張圖。
因為一條邊會被多次刪除,所以刪邊的時候記錄一下當前邊權,後來加邊的時候用這個當前邊權鬆弛。
#include
using
namespace
std;
#define n 220
#define m 200010
#define ll long long
#define inf 123456789
ll n,m,cnt;
ll e[n][n],w[m],x[m],y[m],op[m],ans[m];
template
<
class
t>
inline
void
read(t &x)
intmain()
} for(ll k=1;k<=n;k++)
for(ll i=1;i<=n;i++)
for(ll j=1;j<=n;j++)
e[i][j]=min(e[i][j],e[i][k]+e[k][j]);
for(ll z=m;z>=1;z--)
else
ans[++cnt]=e[x[z]][y[z]];
} for
(ll i=cnt;i>=1;i--)
return
0;
}
10 12模擬賽 旅程 最短路
神即將帶領一些人去他們的孤寂之境,由於這個世界的不穩定,地點之間的有向道路會不定期地毀壞,出於工作準備,神想知道在某些道路毀壞之後某兩點之間的最短路。就是給定乙個有向圖,現有兩個操作,操作 1 是刪除一條邊 一條邊可重複刪除 操作 2是詢問兩個點之間的最短路。第 1 行兩個正整數 n,m,分別表示圖...
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...