网址:https://scut.online/p/106 题意: 给出一个点权树以$1$为根节点,求子树有几个节点的权值小于等于$k$。 题解: 主席树版本,先对树$dfs$求出第一次进入某节点的时间戳,然后同时处理出子树的节点数,然后求出的$dfs$序中某节点的时间戳后长度为该节点的子树的大小$- ...
分类:
其他好文 时间:
2019-08-10 21:58:03
阅读次数:
115
首先安利自己倍增求LCA的博客,前置(算不上)知识在此。 LCA有3种求法:倍增求lca(上面qwq),树链剖分求lca(什么时候会了树链剖分再说。),还有,标题。 是的你也来和我一起学习这个了qwq。 开始吧。 众所周知,每当你dfs时,你都能产生一棵dfs树,可以根据你的dfs序来构建。 suc ...
分类:
其他好文 时间:
2019-08-10 21:39:46
阅读次数:
142
Description 有一棵n个节点的无根树,给出其中的m对点对<x,y>。问有多少条树上的简单路径<u,v>满足该路径上不存在任何一对给出的点对<x,y>。 这里我们认为路径<u,v>和<v,u>是相同的。并且对于题目中给出的点对<x,y>满足x!=y,对于你要计数的路径<u,v>满足u!=v( ...
分类:
其他好文 时间:
2019-08-07 22:49:02
阅读次数:
93
百度科技园内有nn个零食机,零食机之间通过n?1n?1条路相互连通。每个零食机都有一个值vv,表示为小度熊提供零食的价值。 由于零食被频繁的消耗和补充,零食机的价值vv会时常发生变化。小度熊只能从编号为0的零食机出发,并且每个零食机至多经过一次。另外,小度熊会对某个零食机的零食有所偏爱,要求路线上必 ...
分类:
其他好文 时间:
2019-07-31 11:04:48
阅读次数:
81
"原题传送门" 看到这种树上统计点对个数的题一般是线段树合并,这题也不出意外 先对这棵树进行树剖,对于每次普及语言,在$x,y$两点的线段树上的$x,y$两位置打$+1$标记,在点$fa[lca(x,y)]$的线段树上$x,y$两位置打$ 2$标记 线段树中该维护三个东西: 1.dfs序最小的$lp ...
分类:
编程语言 时间:
2019-07-21 23:50:48
阅读次数:
159
树链剖分 前言 :虽然noip基本不考,但我觉得还是多少学一点吧 问题模型 对于树上的某条路径,进行一系列操作(类似线段树上的操作) 实现原理 恰如其名,将树剖分成一段又一段的区间(树链),便于我们进行线段树的操作( 树上的线段树操作 )。将树分为重链和轻链,重链的dfs序(与其他dfs序不同,树剖 ...
分类:
其他好文 时间:
2019-07-21 13:20:15
阅读次数:
98
一、题目: "题目链接" 个人私题,请注意版权保护。 二、思路: 树上莫队经典例题。其莫队的思想也很经典。 首先考虑在树上怎样莫队。我们很熟悉在序列上进行莫队,那么我们考虑将树转化成序列。那么什么序列能将子树转化为一个区间呢?当然是dfs序了! 然后回忆HH的项链那道经典题。它问的是“一段区间所包含 ...
分类:
其他好文 时间:
2019-07-19 21:19:40
阅读次数:
138
HDU - 5390 看到的第一感觉就是树链剖分 + 线段树套字典树, 感觉复杂度不太对。 其实这种路径其实很特殊, 一个点改变只会影响它儿子到根的路径, 并且这种求最优值问题可以叠加。 所以我们修改的时候对对应dfs序打标记, 询问的时候在线段树上从上往下对每个对应区间求个最优值。 这样还会被卡M ...
分类:
其他好文 时间:
2019-07-14 11:12:06
阅读次数:
73
Given a rooted tree ( the root is node 11 ) of NN nodes. Initially, each node has zero point. Then, you need to handle QQ operations. There're two typ ...
分类:
编程语言 时间:
2019-07-13 13:23:45
阅读次数:
140
HDU 5409 显然要先双连通缩成一棵树。 然后对于树上的边才有答案。 对于一条边来说, 两侧的最大值分为mx1 , mx2 , 那么 u 一定是min(mx1, mx2), v 一定是 u + 1。 这个经过仔细分析一下就能得到, 然后按dfs序建个st表就好啦。 ...
分类:
其他好文 时间:
2019-07-09 19:37:18
阅读次数:
102