給出乙個n
nn個點m
mm條邊的無向圖,每個詢問會讓你刪除一條x,y
x,yx,
y的邊或者是詢問你x,y
x,yx,
y間路徑最大值的最小值。
n ,q
≤105
,m≤1
06,l
imit
:2500ms
n,q\leq 10^5,m\leq10^6,limit:2500ms
n,q≤10
5,m≤
106,
limi
t:25
00ms
此題是加強版。lct會不會被卡到掛啊?
但是我並沒有寫加強版(霧
sol:
實際上對於原版來說不同的是點的數量,也就是說你需要用個map之類的東西維護一下,
而不是直接套鄰接矩陣。
對於刪邊我們把它變成加邊,就成了增量生成樹問題。
然後就是lct
lctlc
t維護mst
mstms
t的板子題了:對於點x,y
x,yx,
y用lc
tlct
lct拉出路徑上的最大值,
和當前新加的邊比較一下是不是要斷掉。
我們選擇把邊權轉點權,方法是兩個點拆成三個,中間乙個虛點賦值。
資料結構題好久沒有在沒拍的情況下1a了。
#include
#include
#include
#define debug printf("gg\n")
const
int n =
3e5+7;
int s[n]
, v[n]
;inline
intmax
(int a,
int b)
inline
intckmax
(int a,
int b)
struct lct
inline
void
pushup
(int x)
inline
void
resv
(int x)
inline
intnort
(int x)
inline
void
rotate
(int x)
inline
void
pushdown
(int x)
}inline
void
splay
(int x)
}inline
void
access
(int x)
inline
void
bert
(int x)
inline
intfindrt
(int x)
inline
void
split
(int x,
int y)
inline
intlink
(int x,
int y)
inline
intcut
(int x,
int y)
}t;int n, m, q, tot;
const
int upnode =
3e3+7;
struct edge e[n*2]
;int cnode[n][2
], pcnt, map[upnode]
[upnode]
;struct question q[n*2]
;int ff[n]
, size[n]
;inline
intfind
(int x)
inline
intunion
(int x,
int y)
struct res eres[n*2]
;inline
intcmp
(res a, res b)
int orgi[n*2]
;void
init()
for(
int i =
1; i <= q; i++
) std ::
sort
(eres +
1, eres + m +
1, cmp)
;int ptot =0;
for(
int i =
1; i <= m; i++
)for
(int i =
1; i <= m; i++)if
(map[e[i *2-
1].from]
[e[i *2]
.to]
) map[e[i *2-
1].from]
[e[i *2]
.to]
= i + n;
}int stack[n]
;int opts;
void
solve()
else
}while
(opts) printf (
"%d\n"
, stack[opts--])
;}intmain()
WC2006 水管局長資料加強版
sc省my市有著龐大的地下水管網路,嘟嘟是my市的水管局長 就是管水管的啦 嘟嘟作為水管局長的工作就是 每天供水公司可能要將一定量的水從x處送往y處,嘟嘟需要為供水公司找到一條從a至b的水管的路徑,接著通過資訊化的控制中心通知路徑上的水管進入準備送水狀態,等到路徑上每一條水管都準備好了,供水公司就可...
BZOJ WC2006 水管局長資料加強版
time limit 25 sec memory limit 128 mb submit 4842 solved 1482 submit status discuss sc省my市有著龐大的地下水管網路,嘟嘟是my市的水管局長 就是管水管的啦 嘟嘟作為水管局長的工作就是 每天供水公司可能要將一定量的...
BZOJ4140 共點圓加強版
假設當前詢問點為 a,b 那麼它在乙個以 x,y 為圓心的圓裡需要滿足 x a 2 y b 2 leq x 2 y 2 2ax 2by geq a 2 b 2 等價於詢問所有圓心與 2a,2b 的點積的最小值是否小於 a 2 b 2 考慮將修改操作二進位制分組,分成 o log n 段連續的修改區間...