随笔分类 -  树--------------------------

摘要:【题目】 "51Nod 1273 旅行计划" 【题意】给定n个点的树和出发点k,要求每次选择一个目的地旅行后返回,使得路径上未访问过的点最多(相同取编号最小),旅行后路径上所有点视为访问过,求旅行方案。$n,k \leq 5 10^4$。 【算法】贪心 首先显然是访问所有叶子节点,先按叶子节点深度从 阅读全文
posted @ 2018-05-23 11:43 ONION_CYC 阅读(222) 评论(0) 推荐(0)
摘要:【题目】 "BZOJ 1095" 【题意】给定n个黑白点的树,初始全为黑点,Q次操作翻转一个点的颜色,或询问最远的两个黑点的距离,$n \leq 10^5,Q \leq 5 10^5$。 【算法】括号序列+线段树 【题解】参考: "konjac" 括号序列其实就是入栈出栈序,每个点在进入时加左括号和 阅读全文
posted @ 2018-05-17 17:02 ONION_CYC 阅读(386) 评论(0) 推荐(0)
摘要:【题意】阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。 经阿狸研究发现,这个打字机是这样工作的: l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 l 按一下印有'B'的按键,打字 阅读全文
posted @ 2018-04-25 13:18 ONION_CYC 阅读(322) 评论(0) 推荐(0)
摘要:【参考】★t14t41t(感谢!) 【题意】给定带正边权简单无向图,每次操作删除一条边或者询问两点间最小的 [ 简单路径上边的最大值 ]。n,q<=10^5,m<=10^6。 【题解】题目询问的是两点间的最小瓶颈路,答案一定在原图的最小生成树上,于是本题就变成了动态维护删边最小生成树。 然而Link 阅读全文
posted @ 2018-04-23 20:27 ONION_CYC 阅读(253) 评论(0) 推荐(0)
摘要:【题意】给定n个点的树,每条边有一个小写字母a~v,求每棵子树内的最长回文路径,回文路径定义为路径上所有字母存在一种排列为回文串。n<=5*10^5。 【算法】dsu on tree 【题解】这题经典套路就是按照22个字母个数的奇偶性压位,然后两段路径异或起来是0或1<<j就是合法路径。 dsu的时 阅读全文
posted @ 2018-04-22 21:31 ONION_CYC 阅读(339) 评论(0) 推荐(1)
摘要:【题目】E. Lomsat gelral 【题意】给定n个点的树,1为根,每个点有一种颜色ci,一种颜色占领一棵子树当且仅当子树内没有颜色的出现次数超过它,求n个答案——每棵子树的占领颜色的编号和Σci(一棵子树可能有多种占领颜色)。1<=n,ci<=10^5。 【算法】dsu on tree 【题 阅读全文
posted @ 2018-04-22 12:54 ONION_CYC 阅读(280) 评论(0) 推荐(0)
摘要:【题意】参考PoPoQQQ。 给定一棵树,每个点有一个点权,提供四种操作: 1.删除两点之间的连边 不存在边则无视 2.在两点之前连接一条边 两点已经联通则无视 3.在两点之间的路径上所有点的点权加上一个数 两点不连通则无视 4.询问两点之间路径上任选两点路径上的点权和的期望值 【算法】Link-C 阅读全文
posted @ 2018-04-01 22:49 ONION_CYC 阅读(201) 评论(0) 推荐(0)
摘要:【题目】2017"百度之星"程序设计大赛 - 初赛(A) 【题意】给定n个点的带边权树,m条编号1~m的路径,Q次询问编号区间[L,R]所有链的交集的长度。n<=500000。 【算法】线段树+RMQ-LCA+树链的交 【题解】树链的交:记一条链为(a1,b1),LCA为c1。另一条链为(a2,b2 阅读全文
posted @ 2018-03-14 11:45 ONION_CYC 阅读(469) 评论(0) 推荐(0)
摘要:【题目】D. Best Edge Weight 【题意】给定n个点m条边的带边权无向连通图,对每条边求最大边权,满足其他边权不变的前提下图的任意最小生成树都经过它。n,m<=2*10^5,1<=wi<=10^9。 【算法】最小生成树+倍增LCA+并查集 【题解】首先求出图的一个最小生成树M,则所有边 阅读全文
posted @ 2018-03-07 22:08 ONION_CYC 阅读(405) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-03-05 10:15 ONION_CYC 阅读(6) 评论(0) 推荐(0)
摘要:【题意】给定n个数字ai,表示大爷落到i处会被弹飞到i+ai处,弹飞到>n或<1处则落地。m次操作,修改一个ai,或询问大爷落到x处经过几次落地(或-1)。n,m<=10^5,|ai|<=n。 【算法】Link-Cut Tree 【题解】n个点n条出边,构成了神奇的基环内向森林。将落地视为第n+1个 阅读全文
posted @ 2018-03-04 14:25 ONION_CYC 阅读(375) 评论(0) 推荐(0)
摘要:【题意】给定n个点的树,每个点初始权值为1,m次操作:1.x到y的点加值,2.断一条边并连一条边,保证仍是树,3.x到y的点乘值,4.x到y的点权值和取模。n,m<=10^5。 【算法】Link-Cut Tree 【题解】区间加和区间乘标记的处理:【BZOJ】1798: [Ahoi2009]Seq 阅读全文
posted @ 2018-03-02 16:24 ONION_CYC 阅读(171) 评论(0) 推荐(0)
摘要:【题意】给定n个点和m个操作,每次操作:1.连接2个点。2.断开2个点。3.查询2个点是否连通。m<=2*10^5。 【算法】Link-Cut Tree 【题解】LCT模板题,Link,Cut,和查询两个点的root是否相同。 #include<cstdio> #include<cstring> # 阅读全文
posted @ 2018-03-02 10:36 ONION_CYC 阅读(268) 评论(0) 推荐(0)
摘要:【题意】给定n个点的树,m次询问,每次给定ki个特殊点,一个点会被最近的特殊点控制,询问每个特殊点控制多少点。n,m,Σki<=300000。 【算法】虚树+倍增 【题解】★参考:thy_asdf 对询问建立虚树,然后DFS统计虚树上每个点被哪个点控制,记为belong[x]。 统计的方法是从下往上 阅读全文
posted @ 2018-02-27 20:30 ONION_CYC 阅读(279) 评论(0) 推荐(0)
摘要:【题意】给定n个点的带边权树,对于树上存在的若干特殊点,要求任选一个点开始将所有特殊点走遍后返回。现在初始没有特殊点,m次操作每次增加或减少一个特殊点,求每次操作后的总代价。n,m<=10^5。 【算法】虚树+DFS序+set 【题解】每次询问相当于求两倍虚树路径和。 模拟虚树上dfs序的转移会发现 阅读全文
posted @ 2018-02-25 21:57 ONION_CYC 阅读(204) 评论(0) 推荐(0)
摘要:【题意】给定n个点的带边权树,每次询问给定ki个特殊点,求隔离点1和特殊点的最小代价。n<=250000,Σki<=500000。 【算法】虚树+DP 【题解】考虑普通树上的dp,设f[x]表示隔离1和子树x内特殊点的最小代价,val[x]表示x到1路径上的最小代价(预处理)。 点x特殊,f[x]= 阅读全文
posted @ 2018-02-25 21:09 ONION_CYC 阅读(254) 评论(0) 推荐(0)
摘要:【题目】E. Palindromes in a Tree 【题意】给定一棵树,每个点都有一个a~t的字符,一条路径回文定义为路径上的字符存在一个排列构成回文串,求经过每个点的回文路径数。n<=2*10^5。 【算法】点分治 【题解】状压20位的二进制表示一条路径的字符状态,点分治过程中维护扫描过的路 阅读全文
posted @ 2018-01-23 09:55 ONION_CYC 阅读(549) 评论(0) 推荐(1)
摘要:【题意】给定带边权树,求两点距离<=k的点对数。n<=40000。 【算法】点分治 【题解】对于一个区域,选择其重心x作为根,则划分出来的每棵子树都是子区域,可以证明至多划分log n次(通过vis[]划分区域)。每次划分所有点都扫描一次,所以仅遍历的复杂度是O(n log n)。 对于本题,将点x 阅读全文
posted @ 2018-01-20 11:20 ONION_CYC 阅读(296) 评论(0) 推荐(0)
摘要:【题意】给一棵树,每条边有权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, K <= 1000000。注意点从0开始编号,无解输出-1。 【算法】点分治 【题解】每个区域按重心x划分子树,一条经过x的路径是从一个子树到另一个子树的(从x出发记为深度0即可),那么就让子树i的 阅读全文
posted @ 2018-01-20 11:09 ONION_CYC 阅读(275) 评论(0) 推荐(0)
摘要:【题意】给定带边权仙人掌图,Q次询问两点间最短距离。n,m,Q<=10000 【算法】圆方树处理仙人掌问题 【题解】树上的两点间最短路问题,常用倍增求LCA解决,考虑扩展到仙人掌图。 先对仙人掌图建圆方树,圆圆边和原图边权一致。对于每个方点代表的环,记深度最小的点为x,则圆方边的边权是圆点到x的最短 阅读全文
posted @ 2018-01-19 09:17 ONION_CYC 阅读(1355) 评论(0) 推荐(5)