6544 聯通塊(套路 線段樹)

2021-10-01 11:34:48 字數 1221 閱讀 4434

題意: 給你一顆n

nn個節點的樹,問有多少個區間 [l,

r](l

<=r

)[l,r] (l<=r)

[l,r](

l<=r

) 滿足 區間內的點在樹上恰好是乙個聯通塊。

n

<=3

e5

n<=3e5

n<=3

e5題解:好套路啊。

樹上乙個點集為聯通塊−

>

->

−>

樹上乙個點集的匯出子圖中點數-邊數=1=1

=1−

>

->

−>

按序加入動態維護區間點的匯出子圖中點數-邊數。求取到最小值的方案數即可。

a cc

od

e\rm ac \ code

accode

#include

#define maxn 300005

#define maxm maxn * 2

#define ll long long

#define lc u<<1

#define rc u<<1|1

#define tc 1,1,n

using

namespace std;

int n;

int info[maxn]

,prev[maxm]

,to[maxm]

,cnt_e;

void

node

(int u,

int v)

int tg[maxn<<2]

,mn[maxn<<2]

,sm[maxn<<2]

;void

dtp(

int u,

int p)

voiddt(

int u)

void

ins(

int u,

int l,

int r,

int ql,

int qr,

int v)

void

build

(int u,

int l,

int r)

intmain()

printf

("%lld\n"

,ans)

;}

1632 B君的連通 樹的聯通塊)

b國擁有n個城市,其交通系統呈樹狀結構,即任意兩個城市存在且僅存在一條交通線將其連線。a國是b國的敵國企圖秘密發射飛彈打擊b國的交通線,現假設每條交通線都有50 的概率被炸毀,b國希望知道在被炸毀之後,剩下聯通塊的個數的期望是多少?輸入乙個數n 2 n 100000 接下來n 1行,每行兩個數x,y...

C 最短路 線段樹 例題 Board

source noip2016 rzz 2 t3 給出這樣一棵 二叉樹 下面是乙個例子 每一條圖上的路徑用乙個字串表示,字串中的每乙個字元表示乙個移動。字元僅包含如下五種 用一條路徑來表示這條路徑的終點,例如路徑 221lu 就表示上圖中的節點 a 給出兩條路徑,你的任務是求出著兩條路徑的終點之間的...

HAOI2012 高速公路 線段樹

考慮每乙個詢問答案的分子 用線段樹維護序列,每個節點記錄以下內容 這樣就可以對區間進行 o 1 的快速合併 考慮如何下傳標記,設要放置的標記值為 t 則 include using namespace std define int long long const int n 1000005 int ...