[CF750G]New Year and Binary Tree Paths

Posted StaroForgin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CF750G]New Year and Binary Tree Paths相关的知识,希望对你有一定的参考价值。

New Year and Binary Tree Paths

题解

很显然,路径分单链与非单链两种情况,我们可以分别考虑两者。

对于单链:

我们考虑一个长度为 h h h的链从点 x x x出发全部往左儿子走回的编号和, ∑ i = 0 h − 1 2 i x = ( 2 h − 1 ) x \\sum_{i=0}^{h-1}2^ix=(2^h-1)x i=0h12ix=(2h1)x
如果我们在链上高度为 y y y的地方向右儿子走,那么总的贡献会增加 ∑ i = 0 y − 1 2 i = 2 y − 1 \\sum_{i=0}^{y-1}2^i= 2^{y}-1 i=0y12i=2y1
我们设序列 t t t表示点 x x x在整个过程中在什么位置会向左儿子走,那么从点 x x x出发的长度为 h h h的链的总贡献为 ∑ i = 0 h − 1 2 i x + ∑ i = 0 h − 1 t i ( 2 i − 1 ) ⩽ ( 2 h − 1 ) x + 2 h − h < ( 2 h − 1 ) ( x + 1 ) \\sum_{i=0}^{h-1}2^ix+\\sum_{i=0}^{h-1}t_{i}(2^i-1)\\leqslant (2^h-1)x+2^{h}-h<(2^h-1)(x+1) i=0h12ix+i=0h1ti(2i1)(2h1)x+2hh<(2h1)(x+1)
所以对于不同的 h h h,我们的起始点 x x x是与之一一对应的, x = ⌊ s 2 h − 1 ⌋ x=\\left \\lfloor\\frac{s}{2^h-1}\\right\\rfloor x=2h1s

我们只需要判断从当前的 x x x出发,能否走到一个点使得编号总和为 s s s。也就相当于我们用不同的 2 i − 1 2^i-1 2i1能否组合出 s − ( 2 h − 1 ) x s-(2^h-1)x s(2h1)x
由于 2 i − 1 > ∑ j = 0 i − 1 ( 2 j − 1 ) = 2 i − i 2^i-1>\\sum_{j=0}^{i-1}(2^j-1)=2^{i}-i 2i1>j=0i1(2j1)=2ii,所以我们可以用贪心的方法判断,如果 t t t不小于当前的 2 i − 1 2^i-1 2i1,就将它减去,看最后能否去到 0 0 0

对于其它任意路径

显然,我们可以将它转化成一个点延申出两条单链的形式。
我们设点 x x x延申出的两条单链长度分别为 h 1 h_1 h1 h 2 h_2 h2,全向左儿子走,那我们的和就为 ( 2 h 1 + 2 h 2 − 3 ) x + 2 h 2 − 1 − 1 (2^{h_1}+2^{h_2}-3)x+2^{h_2-1}-1 (2h1+2h23)x+2h211
同样,对于固定的 ( h 1 , h 2 ) (h_1,h_2) (h1,h2)来说,点 x x x也是固定的。
我们只需要判断我们的 ∑ i = 0 h 1 − 2 t 1 , i ( 2 i − 1 ) + ∑ i = 0 h 2 t 2 , i ( 2 i − 1 ) \\sum_{i=0}^{h_1-2} t_{1,i}(2^{i}-1)+\\sum_{i=0}^{h_2}t_{2,i}(2^i-1) i=0h12t1,i(2i1)+i=0h2t2,i(2i1)能否构造出 s − ( 2 h 1 + 2 h 2 − 3 ) x − 2 h 2 − 1 + 1 s-(2^{h_1}+2^{h_2}-3)x-2^{h_2-1}+1 s(2h1+2h23)x2h21+1即可。

但显然,如果全是 2 i − 1 2^i-1 2i1的形式的话,我们是并不好维护的,我们可以枚举选择了多少个 2 i − 1 2^{i}-1 2i1,如果选择了 n n n个,就将我们的 s s s加上 n n n,之后就只用看每个 2 i 2^i 2i选择了几个就行了。
这一块可以对于二进制位数位 d p dp dp来维护。
我们定义 d p i , j , S dp_{i,j,S} dpi,j,S表示前 i i i位选择了 j j j 2 2 <

以上是关于[CF750G]New Year and Binary Tree Paths的主要内容,如果未能解决你的问题,请参考以下文章

性质分析+数位DPCF750G New Year and Binary Tree Paths

CF 750C New Year and Rating(思维题)

CF1284E New Year and Castle Construction

CF1284E New Year and Castle Construction

CF1279F New Year and Handle Change 题解

CF611H New Year and Forgotten Tree