
树上问题
C202044zxy
这个作者很懒,什么都没留下…
展开
-
[LOJ 6042] 跳蚤王国的宰相
https://loj.ac/p/6042原创 2020-11-28 15:38:49 · 197 阅读 · 0 评论 -
创世纪
一、题目题目描述applepi手里有一本书《创世纪》,里面记录了这样一个故事……上帝手中有着N 种被称作“世界元素”的东西,现在他要把它们中的一部分投放到一个新的空间中去以建造世界。每种世界元素都可以限制另外一种世界元素,所以说上帝希望所有被投放的世界元素都有至少一个没有被投放的世界元素能够限制它,这样上帝就可以保持对世界的控制。由于那个著名的有关于上帝能不能制造一块连自己都不能举起的大石头的二律背反命题,我们知道上帝不是万能的,而且不但不是万能的,他甚至有事情需要找你帮忙——上帝希望知道他最多可以原创 2020-06-13 15:31:57 · 336 阅读 · 0 评论 -
铁路票价
一、题目点此看题二、解法我佛了,本来能AAA掉的,结果写爆了。首先bfsbfsbfs建出生成树,一个点维护两个值:是否能通过树边走到111,能通过多少非树边走到111,然后我们考虑树边和非树边。考虑断掉一条树边(u,v)(u,v)(u,v)(保证dep[u]<dep[v]dep[u]<dep[v]dep[u]<dep[v]),修改vvv的第一个值,然后判断vvv会不会被...原创 2020-05-05 13:45:08 · 319 阅读 · 0 评论 -
[TJOI2019]甲苯先生的线段树
一、题目点此看题二、解法c=1c=1c=1时,问题变成了求两个点的最长公共前缀(自己随便画个图就明白了)c=2c=2c=2时,我们先需要知道两个结论,现在分别给出结论及证明。结论111:点xxx到根的路径和为2x−cnt(x)2x-cnt(x)2x−cnt(x),其中cnt(x)cnt(x)cnt(x)是指的xxx中111的个数,你可以理解为每一个111都是一个拐点,由原先的二倍关系而多...原创 2020-03-21 11:09:29 · 203 阅读 · 0 评论 -
HXY造公园
水题愉悦身心一、题目点此看题二、解法本题的关键问题就是维护树的直径,一开始可以跑一个树形dpdpdp求直径,我们考虑合并两颗树。最优的方式就是取两颗树直径的中点,然后链接,具体就是:len[y]=len[y]+12+len[x]+12+1len[y]=\frac{len[y]+1}{2}+\frac{len[x]+1}{2}+1len[y]=2len[y]+1+2len[x]+1+...原创 2020-01-29 18:02:21 · 281 阅读 · 0 评论 -
[CF468D]Tree
一、题目点此看题二、解法先考虑第一个问题,如何得到所求的最大和。我们可以对原式做下列变换:∑i=1ndis(i,pi)=2∑i=1ndep[i]−2∑i=1ndep[lca(i,pi)]\sum_{i=1}^n dis(i,p_i)=2\sum_{i=1}^ndep[i]-2\sum_{i=1}^ndep[lca(i,p_i)]i=1∑ndis(i,pi)=2i=1∑ndep[i]−...原创 2020-01-25 16:46:15 · 259 阅读 · 0 评论 -
[BZOJ十连测]线段树
一、题目二、解法在若干次操作后,某一个位置的值可以表示成若干各区间的最大值。例如位置kkk,我们找到当前操作前最后一个(编号最大但小于当前编号)覆盖当前区间左端点的操作的左端点,最后一个覆盖当前当前区间右端点的操作的右端点,把这个左右端点当成一个新的操作区间,然后重复执行上述操作。也就是我们需要一直向左找,一直向右找,找到最左的和最右的ll,rrll,rrll,rr,kkk位置上面的即是...原创 2020-01-23 13:56:18 · 360 阅读 · 0 评论 -
[十二省联考2019]春节十二响
一、题目点此看题二、解法一道很好的子树内贪心的题目原创 2019-12-10 18:45:26 · 224 阅读 · 0 评论 -
树上的数
一、题目点此看题二、解法既然是字典序问题,可以考虑贪心,我们先从小到大枚举数字,然后找到可以到达的最小的编号。0x01 链0x02 菊花图0x03 树大概的思路就是这个样子,代码很难实现,我会写注释。#include <cstdio>#include <iostream>using namespace std;const int MAX...原创 2019-11-21 21:16:29 · 634 阅读 · 0 评论 -
天天爱跑步
一、题目点此看题题意:给出一棵树和若干个路径,问对于每个点是多少个路径的wi+1w_i+1wi+1个点。二、解法先来推一推柿子,分类讨论一下:1、iii在(u,lca)(u,lca)(u,lca)的路径上,如果dep[u]=dep[i]+w[i]dep[u]=dep[i]+w[i]dep[u]=dep[i]+w[i],那么这条路径对iii有111的贡献。2、iii在(lca,v)(...原创 2019-11-21 16:00:30 · 195 阅读 · 0 评论 -
树的重心
一、题目点此看题二、解法重心可以考虑从重儿子方面入手。设d[u][i]d[u][i]d[u][i]为从uuu向重儿子跳2i2^i2i步,如果我们从一棵树的根开始跳,那么这样的方式log\loglog次就可跳到重心。然后考虑断开边(u,v)(u,v)(u,v),则u,vu,vu,v就成了两个子树的根,只要有了ddd数组,就可以log\loglog找答案。考虑换根,什么是换根呢?就是你...原创 2019-11-20 15:24:38 · 224 阅读 · 3 评论 -
括号树
一、题目点此看题二、解法0x01 链先考虑链的情况,因为树好像对解法没有什么影响。考虑加入一个元素,然后O(1)O(1)O(1)算贡献,如果它是左括号,那么直接把它压入栈中,记录下它的位置,如果它是右括号,以他为结尾的括号独立结构就多了一个,设以iii为结尾的括号独立结构为f[i]f[i]f[i],我们要考虑到形如()()()()()()()()()的情况,则:f[i]=f[tmp−1...原创 2019-11-18 20:07:17 · 570 阅读 · 0 评论