WC2021 菊蒻yxy的題解

2021-10-19 05:31:51 字數 2271 閱讀 8515

[wc2021] 括號路徑

顯然 如果 a

aa 可以到達 b

bb ,則有 b

bb 可以到 aaa

我們考慮從小的括號序列開始找 當存在邊 (a,

b,w)

(a,b,w)

(a,b,w

) 和 (c,

b,w)

(c,b,w)

(c,b,w

) 都為左括號

那麼就有 a

−>b−

>

ca->b->c

a−>b−

>

c 構成乙個合法序列 ​所以 a,c

a,ca,

c 互相可以到達

此時就可以把 a,c

a,ca,

c 縮成乙個點 用並查集實現,並維護每乙個集合指向它且為左括號的邊和當前 siz

esize

size

再用新的並查集來當中介去合併新的點

具體實現時 按置合併邊(同型別邊放一起 用 map

mapma

p )。當乙個並查集當中介時 它的同型別的邊對應的點可以合併 所以乙個合併可能會引起另乙個合併,把它們放入佇列處理,佇列中存合併操作。

時間複雜度 o(m

log⁡m)

o(m\log m)

o(mlogm)

期望得分100

[wc2021] 表示式求值

考慮一列一列處理 把矩陣每一列分別計算 相當於求解

首先建出表示式樹 子節點為值 a

ia_i

ai​ 非子節點為 <

,>,?

<,>,?

<

,>,?

然後在樹上 dpdp

dps

ss 是存陣列下標的集合,x

xx 是樹上的乙個節點,sum

xsum_x

sumx

​ 為 x

xx 子樹所有的方案數,l

ll 為 x

xx 左子樹,r

rr 為 x

xx 右子樹

狀態 dp(

s,x)

dp(s,x)

dp(s,x

) 表示:在任意 i∈s

i\in s

i∈s 且 j∉s

j\notin s

j∈/​

s 有 a

i>aj

a_i>a_j

ai​>aj

​ 的情況下,x

xx 出算出來的結果是 a

ia_i

ai​( i∈s

i\in s

i∈s )的方案數

那麼很容易得到轉移方程

求得所有的 dp(

s,x)

dp(s,x)

dp(s,x

) 後 我們開始計算最後的 ans

ansan

s 對 a 0,

a1,a

2...

am−1

a_0,a_1,a_2...a_

a0​,a1

​,a2

​...

am−1

​ 排完序後得到 ap0

,ap1

,...

apm−

1a,a,...a_}

ap0​,a

p1​,

...a

pm−1

​​答案就是

a ns

=∑i=

0m−1

api×

(dp(

,roo

t)−d

p(,r

oot)

)ans=\sum_^a\times(\ dp(\\},root)-dp(\\},root) \ )

ans=i=

0∑m−

1​ap

i​×(

dp(,

root

)−dp

(,ro

ot))

時間複雜度 o(2

m∣e∣

+npo

ly(m

))

o(2^m∣e∣+npoly(m))

o(2m∣e

∣+np

oly(

m)) 期望得分100

[wc2021] 斐波那契

嗚嗚嗚嗚嗚我對這類題過敏啊嗚嗚嗚

您們好好學數學了嗎 嗚嗚我沒有我只會看題解

題解 p7325 【[wc2021] 斐波那契 大佬的題解

orz orz 撲通撲通跪下來

遊記 WC2021遊記

在學校的時候教練讓大家報名,本著不會也要當炮灰的原則填了報名表 放了寒假,給班主任請了假開始自己在家突擊一些完全沒有考到的新知識點,看了點歷年題覺得十分不可做,於是每天就頹頹頹 早上的開幕式很水,說好的8 00 8 30結果講了幾分鐘就沒了 截了一張 dzd 講話的圖作紀念 上來就是隨機化演算法什麼...

WC2021前日常胡話

不知不覺離noip的恐怖回憶已經過去乙個半月了,但我似乎還在whk與oi間徘徊,以至於兩邊都沒搞好,自己心態還受了影響。難得清閒,寫點心裡話出來,就沒有那麼難受了吧。初中我就一直不太很重視whk的學習,上課有的時候不是很認真,然後不太願意寫的作業就應付應付或者抄一抄就過去了。但是因為初中知識太簡單,...

WC2021 表示式求值

題目鏈結 題解 首先讓我們解決乙個簡單的問題 注意到 k 很小 那麼不妨維護 f 表示 i 號生物的每個位置是否都比 s 中每個元素的值大。用 bitset 維護 f 查詢時 從大到小列舉值即可。時間複雜度 o frac 解決這個問題的關鍵是 每個位置的值都是由 k 個初始陣列中的元素得到的 而 k...