首页 > 其他分享 >icetea sol2

icetea sol2

时间:2024-09-05 18:35:42浏览次数:8  
标签:dots frac sum 节点 icetea 2n sol2 2i

icetea sol2

sol1省流:建立线段树,在每一个节点上维护\(f_u(x)\)表示父节点冰红茶有\(x\)个单位,\(u\)的子树内所有边权值和加上\(u\)到父亲边权的最小值.这样根节点两个子节点的\(f\)之和的最小值即为答案.\(f\)的合并方式不再叙述.

为了方便表述,我们记线段树上节点\(u\)的子树内\(\sum h\)记为\(sum_u\),左子节点为\(ls_u\),右子节点为\(rs_u\),其管辖区间为\([l_u,r_u]\),管辖区间长度\(len_u=r_u-l_u+1\).

结论:

\[ans=\sum_{u\text{不为叶节点}}len_u(len_u-1)(sum_{ls_u}-sum_{rs_u})^2 \]

通过这个结论我们可以支持区间加减

证明:

我们基于sol1,研究每一个节点上\(f\)的性质.
我们发现:

对于一个非叶节点\(u\),设\(f_{ls_u}(x)+f_{rs_u}(x)=ax^2+bx+c\),则有如下结论成立:
(记\(f_u(x)\)的三个系数分别为\(a_u,b_u,c_u\))

对于节点\(u\),我们有:

\[a_u=\frac{len_u}{2len_u-1} \\ b_u=\frac{2}{2len_u-1}sum_u \\ c_u=-\sum_{v\in \operatorname{subtree}(u),\text{v不是叶子}}\frac{sum^2_v}{(2len_v-1)(len_v-1)}+\sum_{i=l_u}^{r_u}h_i^2 \]

具体过程

\[a = a_l+a_r \\ b = b_l+b_r \\ c = c_l+c_r \\ a_u = \frac{a}{a+1} \\ b_u = \frac{b}{a + 1} \\ c_u = c - \frac{b ^ 2}{4a} \]

我们发现,叶子节点处\(f(x)=(x-h)^2,a=1\).

而父节点的\(a\)只依赖子节点\(a\),则\(a\)的值只会与层数有关,与\(h\)无关.这样,我们设\(a_i\)表示自底向上的第\(i\)层的\(a\)值,则有

\[a_i=\frac{2a_{i-1}}{2a_{i-1}+1} \]

根据高中数列知识可得,\(a_i=\frac{2^{i-1}}{2^i-1}\).

一种可能的证明

\[a_i=\frac{2a_{i-1}}{2a_{i-1}+1}\\ 2a_ia_{i-1}+a_i=2a_{i-1}\\ 2a_{i-1}(2a_i-1)=a_i(2a_{i-1}-1)\\ \frac{a_i}{2a_i-1}=2\frac{a_{i-1}}{2a_{i-1}-1} \]

由于\(a_1=1,\frac{a_1}{2a_1-1}=1\),那么

\[\frac{a_i}{2a_i-1}=2^{i-1} \\ a_i=\frac{2^{i-1}}{2^i-1} \]


经过类似的证明与观察,我们能得到:

\[b_u=\frac{2}{2len_u-1}sum_u \\ c_u=c_l+c_r-\frac{sum^2_u}{(2len_u-1)(len_u-1)} \]

我们发现,每个节点的\(-\frac{sum^2_u}{(2len_u-1)(len_u-1)}\)都会给其父链上的点的\(c\)贡献.因此我们可以写出通项公式

\[c_u=-\sum_{v\in \operatorname{subtree}(u),v\text{不是叶子}}\frac{sum^2_v}{(2len_v-1)(len_v-1)}+\sum_{i=l_u}^{r_u}h_i^2 \]


有了上面的公式,我们就可以通过\(h\)直接表示出\(ans\)了.

\[ans=\min(f_{ls_{root}}+f_{rs_{root}}) \]

这个二次函数参数:

\[a = \frac{n}{n-1}\\ b = \frac{2}{n-1}\sum_{i=1}^n h \\ c = -\sum_{v\in \operatorname{subtree}(root) / \{root\},v\text{不是叶子}}\frac{sum^2_v}{(2len_v-1)(len_v-1)}+\sum_{i=1}^n h^2 \]

根据初中二次函数知识,有:

\[ans = \frac{4ac-b^2}{4a}=\sum_{i=1}^n h^2-\sum_{v\in \operatorname{subtree}(root) / \{root\},v\text{不是叶子}}\frac{sum^2_v}{(2len_v-1)(len_v-1)}-\frac{(\sum_{i=1}^n h)^2}{n(n-1)} \]

这个式子看起来缭乱不堪,但是我们其实只需要关心每一项的系数即可,后面再慢慢化简.

sol2的式子:

\[ans=\sum_{u\text{不为叶节点}}len_u(len_u-1)(sum_{ls_u}-sum_{rs_u})^2 \]

比对系数:

平方项

为方便,下面的求和式的i均为2的整数次幂

对于\(h_i^2\),在sol1中它的系数为:

\[1-\sum_{i=2,4,8,\dots}^{n/2}\frac{1}{(i-1)(2i-1)}-\frac{1}{n(n-1)} \]

在sol2中它的系数为:

\[\sum_{i=2,4,8,\dots}^{n}\frac{1}{i(i-1)} \]

通过简单化简与高中数列知识,可以证明他们是相等的.

一种可能的证明

\[\begin{align} & 1-\sum_{i=2,4,8,\dots}^{n/2}\frac{1}{(i-1)(2i-1)}-\frac{1}{n(n-1)}=\sum_{i=2,4,8,\dots}^{n}\frac{1}{i(i-1)}\notag \\ \Leftarrow & \sum_{i=2,4,8,\dots}^n\frac{3i-1}{i(i-1)(2i-1)}=\frac{n(2n-1)-1}{n(2n-1)} \notag \\ \Leftarrow & \sum_{i=2,4,8,\dots}^n(\frac{3i-1}{i(i-1)(2i-1)}+\frac{1}{i})=\frac{n(2n-1)-1}{n(2n-1)}+\frac{n-1}{n} \notag \\ \Leftarrow & \sum_{i=2,4,8,\dots}^n\frac{i}{(2i-1)(i-1)}=\frac{2n-2}{2n-1} \notag \\ \Leftarrow & \sum_{i=2,4,8,\dots}^n(\frac{2i-2}{2i-1}-\frac{i-2}{i-1})=\frac{2n-2}{2n-1} \notag \\ \Leftarrow & \frac{2n-2}{2n-1}-0=\frac{2n-2}{2n-1} \text{ 显然成立}\notag \\ \end{align} \]

于是两者系数一致.


交叉项

对于一组\(i,j(i\neq j)\),考虑\(h_ih_j\)在sol1中的系数,发现与lca有关,我们设他们的lca节点长度为\(k\).

则有sol1的系数为

\[-\sum_{i=k,2k,4k,\dots}^{n/2}\frac{2}{(i-1)(2i-1)}-\frac{2}{n(n-1)} \]

sol2的系数为

\[-\frac{2}{k(k-1)}+\sum_{i=2k,4k,\dots}^n\frac{2}{i(i-1)} \]

通过类似的过程,能够证明二者一致.

一种可能的证明

\[\begin{align} & -\sum_{k,2k,\dots}^{n/2}\frac{2}{(i-1)(2i-1)}-\frac{2}{n(n-1)}=-\frac{2}{k(k-1)}+\sum_{i=2k,4k,\dots}^n\frac{2}{i(i-1)} \notag \\ \Leftarrow & -\sum_{k,2k,\dots}^{n}\frac{1}{(i-1)(2i-1)}+\frac{1}{(n-1)(2n-1)}-\frac{1}{n(n-1)}=-\frac{2}{k(k-1)}+\sum_{i=k,2k,\dots}^n\frac{1}{i(i-1)}\notag \\ \Leftarrow & \sum_{k,2k,\dots}^{n}\frac{3i-1}{i(i-1)(2i-1)}=\frac{2}{k(k-1)}+\frac{1}{n(1-2n)}\notag \\ \Leftarrow & \sum_{k,2k,\dots}^{n}(\frac{3i-1}{i(i-1)(2i-1)}+\frac{1}{i})=\frac{2}{k(k-1)}+\frac{1}{n(1-2n)}+\frac{n-1}{n}-\frac{k-2}{k}\notag \\ \Leftarrow & \sum_{k,2k,\dots}^{n}(\frac{2i-3}{2i-1}+\frac{i-3}{i-1})=\frac{2n-3}{2n-1}-\frac{k-3}{k-1}\text{ 显然成立 } \notag \end{align} \]

于是两者系数一致.


综上,通过比对各项系数,sol1与sol2所得式子完全一样,sol2得证.

标签:dots,frac,sum,节点,icetea,2n,sol2,2i
From: https://www.cnblogs.com/snowycat1234/p/18399032

相关文章

  • DSACTF 十一月挑战赛 IceTea
    DSACTF十一月挑战赛IceTea非常感谢C26H52大佬的博文,否则我个狒狒连官方wp都看不懂。拿到第一个http流,很长串Hex密文,丢进cyberchef发现是ELF文件,注意这里不要搞多了,然后丢进IDA发现需要upx脱壳,注意这里是要用4.2版本的3.95的貌似不行。然后发现多了一串字符串base字母表。然......