
树
文章平均质量分 77
ymzqwq
这个作者很懒,什么都没留下…
展开
-
[Codeforces 980E] The Number Games
(emm…懒惰的博主终于开始写题解了,然而怎么还是水题。。)传送门 题意:给出一颗NNN个节点的树,第iii个节点的权值为2i2i2^i, 现在你必须删除KKK个节点(K&lt;NK&lt;NK < N),并且保证剩下的点都联通的情况下,使得剩下的点权值最大。删除KKK个节点,就是选择N−KN−KN-K个节点嘛… 看到有2i2i2^i,应该很容易想到贪心的思路吧… 优先选取iii大的...原创 2018-07-22 18:25:26 · 320 阅读 · 0 评论 -
Codeforces 1109D: generalizations of Cayley's formula证明
做这题的时候发现题解里有提到generalizations&amp;amp;amp;nbsp;of&amp;amp;amp;nbsp;Cayley′s&amp;amp;amp;nbsp;formulageneralizations\ of\ Cayley&amp;amp;amp;amp;#x27;s\ formulageneralizations&amp;amp;amp;nbsp;of&amp;amp;amp;n原创 2019-02-18 17:47:25 · 477 阅读 · 4 评论 -
TopCoder SRM 712 Div1 600 AverageVarianceSubtree
卡精度没素质。。。。今天才知道有__float128这种东西,问了一下noip不能用。。。DescriptionDescriptionDescription传送门nnn个点的树,每个点有一个权值,任选一棵非空子树,求其中所有点方差的期望。SolutionSolutionSolution裸的树形DP,感觉不值600,不过之前做过另一道树形DP也是600…反正这种题吧,大概xy肯定会说要...原创 2018-10-31 18:53:05 · 213 阅读 · 0 评论 -
TopCoder SRM 690 Div1 500 TreeWalker
一题磨了一晚上,其实根本不难,就是我太菜了。我们稍加考虑,就会发现题目求的实际上是2×∑2n−1−dis(i,j),(i&lt;j)2 \times \sum 2^{n-1-dis(i,j)},(i&lt;j)2×∑2n−1−dis(i,j),(i<j),稍加变形,就是2n×∑2−dis(i,j),(i&lt;j)2^{n} \times \sum 2^{-dis(...原创 2018-10-28 21:08:04 · 217 阅读 · 0 评论 -
TopCoder SRM 680 Div1 450 BearSpans
做出TC Div1 medium真是开心,尽管一般来说都是450的较水题qwq对于此题,我们要发现几个性质。性质1:每一轮操作过后联通块个数起码减少一半性质2:操作次数只与MST上的边有关性质1先判掉无解。性质2告诉我们不在MST上的边随便连连就好了。于是我们干脆让MST上的n−1n-1n−1条边就是最小的n−1n-1n−1条边,并且这个MST是一条链。由于合并kkk次,我们就只需考...原创 2018-10-22 19:43:36 · 277 阅读 · 0 评论 -
TopCoder SRM 581 Div1 500 TreeUnion
一个环肯定是由两棵树中的边与中间连接的两条边组成的 那么我们就可以用c[0/1][k]c[0/1][k]c[0/1][k]表示两棵树中长度为kkk的链的数量 最后的期望就是c[0][i]×c[1][K−2−i]×2×(n−2)!n!c[0][i]×c[1][K−2−i]×2×(n−2)!n!\frac{c[0][i]\times c[1][K-2-i]\times 2\times (n-2)!...原创 2018-09-13 14:30:30 · 308 阅读 · 0 评论 -
TopCoder SRM 581 Div2 1000 TreeUnionDiv2
好水。。 先把两点之间的距离预处理出来,然后暴力全排列就行了。。。#include &lt;bits/stdc++.h&gt;using namespace std;const int N=51;const int INF=1e9;int n,a[N][N],d[N][N],c[N];class TreeUnionDiv2 {public: int maximumCyc...原创 2018-09-03 07:53:46 · 243 阅读 · 0 评论 -
[HDU4358] Boring counting (树上启发式合并)
感叹一句,暴力即优雅。 CF上这个blog写得真心好:[Tutorial] Sack (dsu on tree)#include&amp;lt;iostream&amp;gt;#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;#include&amp;lt;map&amp;gt;#define l原创 2018-08-08 17:36:53 · 315 阅读 · 0 评论 -
TopCoder SRM 570 Div1 550 CentaurCompany
和Div2的1000类型差不多,都是个很套路的树形DP 我的做法暴力得要死,天晓得怎么过的。。 f[0/1][i][j][k][l]f[0/1][i][j][k][l]f[0/1][i][j][k][l],0/1表示第iii个节点在哪个公司,jjj表示humanhumanhuman公司有几人,kkk表示humanhumanhuman公司有几个联通块,lll表示horsehorsehorse公司...原创 2018-08-14 16:07:02 · 347 阅读 · 0 评论 -
TopCoder SRM 570 Div2 1000 CentaurCompanyDiv2
这次的1000算简单的,就是统计有几个子树。 树形DP一波,f[i]f[i]f[i]表示以iii为根的子树数量,枚举儿子,转移有三种种情况:只连之前的儿子(f[i]f[i]f[i])只连当前儿子(f[v[i]]+1f[v[i]]+1f[v[i]]+1)都连(f[i]∗(f[v[i]]+1)f[i]∗(f[v[i]]+1)f[i]*(f[v[i]]+1))分别计数即可。#inc...原创 2018-08-14 08:48:48 · 266 阅读 · 0 评论 -
[洛谷2664] 树上游戏
看起来像是点分,其实有 O(n)O(n)O(n) 做法?其实我就是不想写点分才这么写结果感觉脑子烧掉了考虑一种颜色对答案的贡献。考虑把树中这种颜色的点都删掉,那么就会有很多的小树,这些小树中的点互相之间不会产生贡献,而不同树的两个点之间会产生贡献。由此,我们可以得到每一种颜色,点的sum值就是 n - 所在小树的size。由此,一个点总的sum就是 n * 颜色数 - 每种颜色时所在小树...原创 2019-08-02 09:37:13 · 353 阅读 · 0 评论