ZJOI2019 Minimax搜尋 動態DP

2021-09-19 04:21:00 字數 3190 閱讀 9611

鏈結

考慮差分,求出w(s

)≤

kw(s)\leq k

w(s)≤k

的集合數。

考慮方案數不好合併,用概率替代。

設f

if_i

fi​表示i

ii節點的元素<

w< w

<

w的概率,g

ig_i

gi​表示i

ii節點的元素》

w>w

>

w的概率。

最終答案為2m−

1(1−

f1)(

1−g1

)2^(1-f_1)(1-g_1)

2m−1(1

−f1​

)(1−

g1​)

轉移如下

f_u'=\prod_(1-f_v') \\f_u'=[dep_u \ mod \ 2 =0](1-f_u)[dep_u \ mod \ 2 =1]f_u\end

g_u'=\prod_(1-g_v') \\g_u'=[dep_u \ mod \ 2 =1](1-g_u)[dep_u \ mod \ 2 =0]g_u\end

typedef

long

long ll;

const

int maxn =

200005

, mod =

998244353

, inv =

(mod +1)

>>1;

int n, m, l, ll, r, val[maxn]

;struct edge

e[maxn *2]

;int h[maxn]

, tot;

inline

void

add(

int u,

int v)

; h[u]

= tot;

e[++tot]

=(edge)

; h[v]

= tot;

}inline

intfpow

(int x,

int k)

return res;

}int leaf[maxn]

, dfn[maxn]

, low[maxn]

, ord[maxn]

, fa[maxn]

, top[maxn]

, son[maxn]

, f[maxn][2

], dep[maxn]

, siz[maxn]

, time;

struct node

node

(int _x,

int _y)

inline node operator*(

const node &a)

const

inline node operator/(

const node &a)

const

inline

intval()

} g[maxn][2

];inline node init

(int a)

void

dfs1

(int u)

if(leaf[u]

) val[u]

= u,

++m;

}void

dfs2

(int u)

}else

else f[u][0

]=(dep[u]&1

)^1, f[u][1

]= dep[u]&1

; g[u][0

]=init

(f[u][0

]); g[u][1

]=init

(f[u][1

]);}

if(son[u])}

int tot, rt[maxn]

, sum[maxn <<2]

[2], pre[maxn <<2]

[2], lch[maxn <<2]

, rch[maxn <<2]

;#define mid ((l + r) >> 1)

inline

void

merge

(int

&s,int len)

void

build

(int

&s,int l,

int r)

build

(lch[s]

, l, mid)

;build

(rch[s]

, mid +

1, r)

;merge

(s, mid - l +1)

;}void

modify

(int

&s,int l,

int r,

int p)

if(p <= mid)

modify

(lch[s]

, l, mid, p)

;else

modify

(rch[s]

, mid +

1, r, p)

;merge

(s, mid - l +1)

;}void

modify

(int u,

int x)

intmain()

if(val[1]

- i +

1>=

1&& leaf[val[1]

- i +1]

) ans =

(mod +1-

(ll)

(mod +

1- sum[rt[1]

][0]

)* sum[rt[1]

][1]

% mod)

* pw % mod;

printf

("%d "

,(ans - lstans + mod)

% mod)

; lstans = ans;}if

(r == n)

printf

("%d "

,(pw - lstans -

1+ mod)

% mod)

;return0;

}

ZJOI2019賽季回顧

zjoi2019落下了帷幕 儘管成績不盡如人意 但是明天還會繼續 正如一句話所說 不要害怕落日的黑暗,因為明天的太陽還會照常公升起 總排rank35,僅以此文章回顧整個賽季 不算很難的題,大家都ak了,也沒什麼好說的 day2t1很傻的乙個地方判錯了,丟分,然後剩下兩個暴力,總分194 day2t3...

遊記 2019ZJOI自閉記

一早到了hg,發現被放了鴿子,早上不用來 於是下去逛了逛櫻花文會,結果發現沒什麼好逛的emmm 然後就回到了機房,開始頹這時候chhokmah奆佬小姐姐開始換自己的頭像 一直在說,找不到好看的頭像啊 在更換多次後,我們可愛的小姐姐終於選定了頭像 上回說到,我們可愛的小姐姐換了個頭像 在度過了車上漫長...

ZJOI2019 語言 解題報告

3個 log 做法比較簡單,但是寫起來還是有點麻煩的。大概就是樹剖把鏈劃分為 log 段,然後任意兩段可以組成乙個矩形,就是個矩形面積並,聽說卡卡就過去了。好像這個可以被優化到兩個 log 算了,估計挺麻煩的。乙個 log 的做法看起來還挺厲害的。考慮欽定某個點算它的貢獻,於是我們要算的是所有經過它...