随笔分类 -  树—树链剖分

摘要:题目链接: [JOI 2019 Final]独特的城市 对于每个点,它的答案最大就是与它距离最远的点的距离。 而如果与它距离为$x$的点有大于等于两个,那么与它距离小于等于$x$的点都不会被计入答案。 所以我们需要找到对于每个点$u$距离它最远的点及最小的距离$x$满足距离$u$的距离大于等于$x$ 阅读全文
posted @ 2019-04-24 21:27 The_Virtuoso 阅读(554) 评论(0) 推荐(0)
摘要:题目链接: [GXOI/GZOI2019]旧词 对于$k=1$的情况,可以参见[LNOI2014]LCA,将询问离线然后从$1$号点开始对这个点到根的路径链修改,每次询问就是对询问点到根路径链查询即可。 可以发现,如果一个点的贡献被记入答案,那么这个点到根的路径上所有点的贡献都会被记入答案。 那么对 阅读全文
posted @ 2019-04-17 14:21 The_Virtuoso 阅读(357) 评论(0) 推荐(0)
摘要:题目链接: [十二省联考2019]春节十二响 可以发现每条链上的所有点都要放在不同的段里,那么最多只需要树的深度这么多段就够了。 因为这样可以保证每条链上的点可以放在不同的段中而且一个点放在这些段中一定会比新开一个段更优。 那么我们先考虑一条链的情况,显然是先将较长的一条链计入答案,然后将另一条链上 阅读全文
posted @ 2019-04-09 23:28 The_Virtuoso 阅读(335) 评论(0) 推荐(0)
摘要:题目描述 小A走到一个山脚下,准备给自己造一个小屋。这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到 山顶放了格水。于是小A面前出现了一个瀑布。作为平民的小A只好老实巴交地爬山堵水。那么问题来了:我们把这 个瀑布看成是一个n个节点的树,每个节点有权值(爬上去的代价)。小A要选择一些节点 阅读全文
posted @ 2019-03-01 10:35 The_Virtuoso 阅读(407) 评论(0) 推荐(0)
摘要:题目描述 在星历2012年,星灵英雄Zeratul预测到他所在的Aiur行星在M天后会发生持续性暴雨灾害,尤其是他们的首都。而Zeratul作为星灵族的英雄,当然是要尽自己最大的努力帮助星灵族渡过这场自然灾害。要渡过这场自然灾害,Zeratul自然要安排很多很多事情,其中一件就是将雨水疏导到大海里去 阅读全文
posted @ 2019-02-22 09:23 The_Virtuoso 阅读(419) 评论(0) 推荐(1)
摘要:题目描述 在2016年,佳媛姐姐刚刚学习了树,非常开心。现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记,其他结点均无标记,而且对于某个 结点,可以打多次标记。)2. 询问操作:询问某个结点最近的一个打了标记的祖先( 阅读全文
posted @ 2018-10-10 10:24 The_Virtuoso 阅读(183) 评论(0) 推荐(0)
摘要:题目大意: 给一棵树,每条边可能是黑色或白色(起始都是白色),有三种操作: 1、将u到v路径上所有边颜色翻转(黑->白,白->黑) 2、将只有一个点在u到v路径上的边颜色翻转 3、查询u到v路径上颜色为黑色的边数 如果只有1、3操作很好做,直接树链剖分+线段树,重点是2操作(废话)。 可以发现只有l 阅读全文
posted @ 2018-09-28 16:03 The_Virtuoso 阅读(246) 评论(0) 推荐(0)
摘要:题目描述 口袋妖怪(又名神奇宝贝或宠物小精灵)红/蓝/绿宝石中的水系道馆需要经过三个冰地才能到达馆主的面前,冰地中 的每一个冰块都只能经过一次。当一个冰地上的所有冰块都被经过之后,到下一个冰地的楼梯才会被打开。三个冰 地分别如下: 当走出第三个冰地之后,就可以与馆主进行道馆战了。馆主发现这个难度太小 阅读全文
posted @ 2018-09-26 23:35 The_Virtuoso 阅读(268) 评论(0) 推荐(0)
摘要:题目描述 给定一棵树,设计数据结构支持以下操作 1 u v d 表示将路径 (u,v) 加d 2 u v 表示询问路径 (u,v) 上点权绝对值的和 输入 第一行两个整数n和m,表示结点个数和操作数 接下来一行n个整数a_i,表示点i的权值 接下来n-1行,每行两个整数u,v表示存在一条(u,v)的 阅读全文
posted @ 2018-09-25 15:58 The_Virtuoso 阅读(323) 评论(0) 推荐(0)
摘要:题目描述 输入 输出 样例输入 4 0 1 1 2 2 3 4 Add 1 3 1 Query 0 Query 1 Query 2 样例输出 3 3 2 树链剖分模板题,路径修改子树查询,注意节点编号从零开始,答案爆int。 #include<set> #include<map> #include< 阅读全文
posted @ 2018-09-10 20:12 The_Virtuoso 阅读(234) 评论(0) 推荐(0)
摘要:题目描述 输入 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai,Bi,Vi分别表示道路(Ai,Bi),其价值为Vi 其中城市由1..N进行标号 第一行包含一个正整数 阅读全文
posted @ 2018-09-07 14:15 The_Virtuoso 阅读(666) 评论(0) 推荐(1)
摘要:题意参见BZOJ3522 n<=100000 数据范围增强了,显然之前的转移方程不行了,那么不妨换一种。 因为不能枚举根来换根DP,那么我们描述的DP方程每个点要计算三个点都在这个点的子树内的方案数。 设f[i][j]表示i节点子树中与i距离为j的点的个数. g[i][j]表示i节点子树中有g[i] 阅读全文
posted @ 2018-09-06 20:25 The_Virtuoso 阅读(633) 评论(0) 推荐(0)
摘要:树链剖分是解决树上问题的一种常见数据结构,对于树上路径修改及路径信息查询等问题有着较优的复杂度。树链剖分分为两种:重链剖分和长链剖分,因为长链剖分不常见,应用也不广泛,所以通常说的树链剖分指的是重链剖分。在这里讲解并总结一下树链剖分的实现、优秀性质及应用。 重链剖分 先来介绍几个重链剖分的专业名词: 阅读全文
posted @ 2018-09-06 19:52 The_Virtuoso 阅读(6443) 评论(4) 推荐(10)
摘要:题目描述 给定一棵n个点的树,树上每条边的长度都为1,第i个点的权值为a[i]。Byteasar想要走遍这整棵树,他会按照某个1到n的全排列b走n-1次,第i次他会从b[i]点走到b[i+1]点,并且这一次的步伐大小为c[i]。对于一次行走,假设起点为x,终点为y,步伐为k,那么Byteasar会从 阅读全文
posted @ 2018-09-03 22:11 The_Virtuoso 阅读(584) 评论(0) 推荐(0)
摘要:题目描述 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏。今天他得到了一款新游戏《XX 半岛》,这款游戏有n个场景(scene),某些场景可以通过不同的选择支到达其他场景。所有场景和选择支构成树状 结构:开始游戏时在根节点(共通线),叶子节点为 阅读全文
posted @ 2018-09-03 20:47 The_Virtuoso 阅读(622) 评论(0) 推荐(0)
摘要:题目描述 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到 人生哲学。最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱。这样的 想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面 向什么样的人群。很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 n 阅读全文
posted @ 2018-08-31 23:32 The_Virtuoso 阅读(550) 评论(0) 推荐(2)
摘要:题目描述 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。有q次询问,每次询问给出l r z,求sigma_{l<=i<=r}dep[LCA(i,z)]。(即,求在[l,r]区 阅读全文
posted @ 2018-08-31 22:58 The_Virtuoso 阅读(631) 评论(0) 推荐(1)
摘要:题目描述 Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦 阅读全文
posted @ 2018-08-31 11:08 The_Virtuoso 阅读(204) 评论(0) 推荐(0)
摘要:题目描述 S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教, S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰 阅读全文
posted @ 2018-08-30 19:32 The_Virtuoso 阅读(427) 评论(0) 推荐(0)
摘要:题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 给定一棵有n个节点 阅读全文
posted @ 2018-08-30 18:46 The_Virtuoso 阅读(630) 评论(1) 推荐(1)