1. 程式人生 > >洛谷---小L和小K的NOIP考後放鬆賽

洛谷---小L和小K的NOIP考後放鬆賽

連結:

https://www.luogu.org/contestnew/show/11805?tdsourcetag=s_pcqq_aiomsg

題解:

沒人過的題我就沒看

t2:

考慮每個點是朋友的區間是連續的

然後維護每個人朋友的右端點

顯然是單調遞增的

然後線段樹瞎搞一下就好了

蜜汁tle一個點 要了資料再說

t4:

這題直接做顯然不行

我剛開始竟然一直在想怎麼還原揹包然後覺得很難。。

按位考慮就很簡單

我們要求這一位一定要選奇數個

$C(n,1)+C(n,3)+C(n,5)+....=2^{n-1}$

這個證明的話就是二項式定理$(x+1)^n=\sum  C(n,i)*x^i$

然後啊對於0的就任選

k代表第幾位

所以就是$2^{k-1}*2^{a-1}*2^b$

然後發現這個東西其實就跟你這一位有沒有1有關。。。

修改的話也是按位修改比較簡單

暴力就是按位樹鏈剖分,複雜度$nlog^3{n}$

但是這樣每一位單獨維護一個bool變數顯然很浪費

由於我們並不需要知道每一位的實際個數,所以仍舊可以作為一個數維護

直接把左右兒子|起來然後查這一位有沒有就是查這一位是不是1

注意到還是區間^操作,那麼一個地方現在應為1就說明以前應有0

也就是區間的&值

所以我們只需要維護區間&,|值就可以了

複雜度$nlog^2{n}$