随笔分类 -  数据结构

摘要:题目链接 HDU 4866 题意 给定$n$条线段。每条线段平行$x$轴,离x轴的距离为$D$,覆盖的坐标范围为$[L, R]$。 现在有$m$次射击行动,每一次的射击行动可以描述为在横坐标$x$处找到离$x$轴最近的$k$条线段, 并计算这$k$个目标距离$x$轴的总和。强制在线。 对线段到$x$ 阅读全文
posted @ 2018-01-30 22:34 cxhscst2 阅读(174) 评论(0) 推荐(0)
摘要:题目链接 Tree Destructi 题意 给定一棵树,每次可以选定树上的两个叶子,并删去其中的一个。答案每次加上两个选定的叶子之间的距离。 求最后答案的最大值。 首先求出树的某一条直径,令其端点分别为L, R。 把L看成树的根,那么R一定是叶子结点。 对于那些非直径上的点,离他们最远的点肯定是L 阅读全文
posted @ 2018-01-12 19:07 cxhscst2 阅读(593) 评论(0) 推荐(0)
摘要:题目链接 HDU 6251 题意 给出一个$N$个点$N$条边的无向图。然后给出$M$个操作,每个操作为$(x, y, z)$,表示把连接 $x$和$y$的边的颜色改成$z$。 求这张无向图中所有边的颜色的连通块数量。 首先不难得到这是一个环套树的结构。 首先考虑一棵树的情形。 设$f[i]$为$i 阅读全文
posted @ 2018-01-06 22:28 cxhscst2 阅读(547) 评论(0) 推荐(1)
摘要:题目链接 Mr. Kitayuta's Colorful Graph 把每种颜色分开来考虑。 所有的颜色分为两种:涉及的点的个数 $> \sqrt{n}$ 涉及的点的个数 $<= \sqrt{n}$ 对于第一种颜色,并查集缩点之后对每个询问依次处理过来若两点连通则答案加一。 对于第二种颜色,并查集缩 阅读全文
posted @ 2017-12-11 20:34 cxhscst2 阅读(193) 评论(0) 推荐(0)
摘要:题目链接 Envy 题意 给出一个连通的无向图和若干询问。每个询问为一个边集。求是否存在某一棵原图的最小生成树包含了这个边集。 考虑$kruskal$的整个过程, 当前面$k$条边已经完成操作的时候(就是前$k$小的边已经进行并查集缩点,此时部分点已经形成了若干个连通块) 这个时候突然冒出来一些权值 阅读全文
posted @ 2017-12-11 14:26 cxhscst2 阅读(358) 评论(0) 推荐(0)
摘要:题目链接 Eyes Closed 题意 两个人玩一个游戏,现在有两种操作: 1、两个人格子挑选一个区间,保证两个的区间不相交。在这两个区间里面各选出一个数,交换这两个数。 2、挑选一个区间,求这个区间的和的期望。 对于第一种操作,先求出两个区间的长度$len1$和$len2$,再求出两个区间的期望和 阅读全文
posted @ 2017-12-06 20:08 cxhscst2 阅读(262) 评论(0) 推荐(0)
摘要:题目链接 Legacy 首先对于输入的$n$,建立一棵线段树。 显然线段树有大概$2n$个结点,每个节点对应一段区间 我们把这$2n$个结点加入我们的无向图中,一起跑最短路。 具体连边方案: 我们把这棵线段树复制一下,另外一棵倒过来。 首先第一棵线段树,每个结点向他的两个儿子连有向边,连到叶子结点的 阅读全文
posted @ 2017-12-02 11:28 cxhscst2 阅读(216) 评论(0) 推荐(0)
摘要:题目链接 D.Delete 考虑到原图是个DAG,于是我们可以求出每个点的拓扑序。 然后预处理出起点到每个点的最短路$ds[u]$, 和所有边反向之后从终点出发到每个点的最短路$dt[u]$。 令点$u$的拓扑序为$a(u)$。 对于特定的一条边$(u, v, w)$,相当于给所有拓扑序为$[a(u 阅读全文
posted @ 2017-12-01 02:03 cxhscst2 阅读(259) 评论(0) 推荐(0)
摘要:题目链接 BZOJ 4568 考虑树链剖分+线段树维护每一段区域的异或线性基 对于每个询问,求出该点集的异或线性基。然后求一下这个线性基里面能异或出的最大值即可。 阅读全文
posted @ 2017-11-02 21:22 cxhscst2 阅读(235) 评论(0) 推荐(0)
摘要:题目链接 A Simple Task 题意 给出一个小写字母序列和若干操作。每个操作为对给定区间进行升序排序或降序排序。 考虑权值线段树。 建立26棵权值线段树。每次操作的时候先把26棵线段树上的所有在该区间内的信息清空。 然后再通过类似计数排序的方式从左往右(或从右往左)依次塞进去。 阅读全文
posted @ 2017-10-31 17:44 cxhscst2 阅读(388) 评论(0) 推荐(0)
摘要:题目链接 Danil and a Part-time Job 题意 给出一系列询问或者修改操作 $pow$ $x$表示把以$x$为根的子树的所有结点的状态取反($0$变$1$,$1$变$0$) $get$ $x$表示求以$x$为根的子树中状态为$1$的结点数。 首先大力$dfs$序,然后线段树操作一 阅读全文
posted @ 2017-10-31 16:57 cxhscst2 阅读(201) 评论(0) 推荐(0)
摘要:题目链接 Prefix 题意 给定一个字符串序列,求第$l$个字符串到第$r$个字符串之间有多少个不同的前缀 强制在线 考虑$Hash$ 首先把所有前缀都$hash$出来,按顺序组成一个长度不超过$10^{5}$的序列。 然后放入主席树,问题转化为查询区间内不同数字的个数。 查询的时候找到的起始字符 阅读全文
posted @ 2017-10-25 22:22 cxhscst2 阅读(343) 评论(0) 推荐(0)
摘要:题目链接 ...Wait for it... 考虑树链剖分。 对于树上的每个点开一个set,记录当前该节点上所有的girls。 每个节点初始的权值为set中的最小值。 询问的时候每次在路径上寻找最小值,并返回这个点的编号。 然后把这个点的set的第一个元素取出,换成下一个元素。 因为女孩总数不超过1 阅读全文
posted @ 2017-10-10 10:42 cxhscst2 阅读(339) 评论(0) 推荐(0)
摘要:题目链接 Roads in the Kingdom 题意 给出一个环套树的结构,现在要删去这个结构中的一条边,满足所有点依然连通。 删边之后的这个结构是一棵树,求所有删边情况中树的直径的最小值。 显然能被删掉的边是环上的边。 首先预处理出这个环。环上的每一个点都是一棵树的根。 假设环上有$cnt$个 阅读全文
posted @ 2017-10-06 21:29 cxhscst2 阅读(239) 评论(0) 推荐(0)
摘要:题目链接 BZOJ4540 考虑莫队算法。 这题难在$[l, r]$到$[l, r+1]$的转移。 根据莫队算法的原理,这个时候答案应该加上 $cal(l, r+1) + cal(l+1, r+1) + cal(l+2, r+1) + ... + cal(r+1, r+1)$ $cal(l, r)$ 阅读全文
posted @ 2017-10-05 23:50 cxhscst2 阅读(182) 评论(0) 推荐(0)
摘要:题目链接 BZOJ4326 这个程序在洛谷上TLE了……惨遭卡常 在NOIP赛场上估计只能拿到95分吧= = 把边权转化成点权 首先求出每一条路径的长度 考虑二分答案,$check(now)$ 对于当前那些长度大于$now$的路径,用差分求出这些路径经过的点的次数 设这些路径条数为l, 长度最大的路 阅读全文
posted @ 2017-10-01 19:26 cxhscst2 阅读(237) 评论(0) 推荐(0)
摘要:题目链接 Tree and Queries 题目大意 给出一棵树和每个节点的颜色。每次询问$vj, kj$ 你需要回答在以$vj$为根的子树中满足条件的的颜色数目, 条件:具有该颜色的节点数量至少为$kj$。 (莫队居然可以过) 首先转$DFS$序,这样就变成了区间查询。 然后直接套用莫队,求出每次 阅读全文
posted @ 2017-09-30 21:13 cxhscst2 阅读(169) 评论(0) 推荐(0)
摘要:题目链接 Animals and Puzzle 题意 给出一个1e3 * 1e3的01矩阵,给出t个询问,每个询问形如x1,y1,x2,y2 你需要回答在以$(x1, y1)$为左上角,$(x1, y2)$为右下角的子矩阵中,最大的全1正方形的边长。 首先考虑DP预处理。 $f[i][j]$表示以$ 阅读全文
posted @ 2017-09-22 19:19 cxhscst2 阅读(397) 评论(0) 推荐(0)
摘要:题目链接 Watto and Mechanism 题意 给出$n$个串(相当于字典),然后给出$m$个询问。 每个询问以字符串的形式给出,你需要改变这个字符串中的任意一个字符 (必须改变且只能改变一个) 如果改变之后可以成为$n$个串中的一个字符串,则输出$YES$, 否则输出$NO$。 字母集合为 阅读全文
posted @ 2017-09-19 23:05 cxhscst2 阅读(394) 评论(0) 推荐(0)
摘要:题目链接 HDU5893 $2016$年$ICPC$沈阳网络赛的$B$题。这道题其和 BZOJ2243 基本一样 那道题我也写了题解 点这里 两道题的区别就是$BZOJ$这题是点的权值,这道题是边权。 所以我们把边权看成这条边连接的两个点的深度较大的那条边的点权就可以了。 但是这样的话根结点就没有权 阅读全文
posted @ 2017-09-16 21:14 cxhscst2 阅读(218) 评论(0) 推荐(0)