随笔分类 - 数据结构
摘要:"4025: 二分图" 题意:加入边,删除边,查询当前图是否为二分图 本来想练lct,然后发现了线段树分治的做法,感觉好厉害。 lct做法的核心就是维护删除时间的最大生成树 首先口胡一个分块做法,和hnoi2016第一题类似的偏序关系,一样做。 线段树分治 数据结构题中如果使用 对时间cdq分治 ,
阅读全文
摘要:"cdcqの省选膜你赛" 比赛当天~~因为在杠hnoi2016的大数据结构~~没有参加,今天补了一下。挺好玩的~~虽然不看一句话题意的话真的卡读题~~ ~~此生无悔入东方,来世愿生幻想乡~~ "2651. 新史「新幻想史 现代史 」" 一句话题意: 有一个长度为n的整数序列,共m个时刻,在每个时刻都
阅读全文
摘要:"3997: [TJOI2015]组合数学" 题意:$n m:\ n \le 1000$网格图,每个格子有权值。每次从左上角出发,只能向下或右走。经过一个格子权值 1.至少从左上角出发几次所有权值为0。 容易发现偏序关系 $$ x_1 \le x_2, y_1 \le y_2 $$ 最少链数=最长反
阅读全文
摘要:"[Sdoi2017]相关分析" 题意:沙茶线段树 md其实我考场上还剩一个多小时写了40分 其实当时写正解也可以吧1h也就写完了不过还要拍一下 正解代码比40分短2333 cpp include include include include include using namespace std
阅读全文
摘要:"[Sdoi2017]树点涂色" 题意:一棵有根树,支持x到根染成新颜色,求x到y颜色数,求x子树里点到根颜色数最大值 考场发现这个信息是可减的,但是没想到lct 特意设计成lct的形式! 如何求颜色数? 维护一个点和父亲的颜色是否一样,不一样为1,就是前缀和。 考虑相邻 的思想和那道“水位线”有点
阅读全文
摘要:"4539: [Hnoi2016]树" 题意:不想写。复制模板树的子树,查询两点间距离。 终于有一道会做的题了...... 画一画发现可以把每次复制的子树看成一个大点来建一棵树,两点的lca一定在大点的lca里 然后每个大点维护一坨信息:节点编号的区间范围,到根的距离,大点对应子树的根,大点是接在了
阅读全文
摘要:HEOI2016 题解 Q:为什么要在sdoi前做去年的heoi题 A:我省选药丸 http://cogs.pro/cogs/problem/index.php?key=heoi2016 D1T1 树 树剖直接做 或者操作逆序,并查集维护自己和祖先中第一个打标记的点, 注意1号点本身有标记,mark
阅读全文
摘要:"2959: 长跑" 题意:字词加入边,修改点权,询问两点间走一条路径的最大点权和。不一定是树 不是树😱 把边双连通分量缩为一点! 怎么缩? 用一个并查集维护连通性,另一个并查集维护每个点所在边双的编号,初始化就是自己。 加边(x,y)的时候,如果形成环,那么把x到y的路径提取出来,把这个spla
阅读全文
摘要:" 219. 【NOI2016】优秀的拆分" 题意:求有多少AABB样子的子串,拆分不同的同一个子串 算多个 一开始一直想直接求,并不方便 然后看了一眼 "Claris" 的题解的第一行就有思路了 如果分开,求$f[i]$以i结尾AA形式子串和$g[i]$以i开始AA形式子串 就可以套路了 使用常用
阅读全文
摘要:"UOJ 77. A+B Problem" 题意:自己看 接触过线段树优化建图后思路不难想,细节要处理好 乱建图无果后想到最小割 白色和黑色只能选一个,割掉一个就行了 之前选白色必须额外割掉一个p[i],i向i+n连p[i],然后i+n向之前点连INF就行了 向一段区间连边?果断线段树优化 等等,还
阅读全文
摘要:"4276: [ONTAK2015]Bajtman i Okrągły Robin" 题意:$n \le 5000$个区间$l,r\le 5000$,每个区间可以选一个点得到val[i]的价值,每个点最多选1次,求最大价值 有个显然的$n^2$条边的费用流建图(二分图最大权匹配),每个区间一个点连(
阅读全文
摘要:"3551: [ONTAK2010]Peaks加强版" 题意:带权图,多组询问与一个点通过边权$\le lim$的边连通的点中点权k大值,强制在线 "PoPoQQQ大爷题解传送门" 说一下感受: 容易发现一定选最小生成树上的边,然后用到了一个神奇的东西 Kruskal重构树 进行Kruskal过程中
阅读全文
摘要:"3123: [Sdoi2013]森林" 题意:一个森林,加边,询问路径上k小值。保证任意时刻是森林 LCT没法搞,树上kth肯定要用树上主席树 加边?启发式合并就好了,小的树dfs重建一下 注意 1. 测试点编号不是数据组数!!! 2. 加边的时候要更新邻接链表啊,并且fa要清空 3. 并查集维护
阅读全文
摘要:"3545: [ONTAK2010]Peaks" 题意:带权图,多组询问与一个点通过边权$\le x$的边连通的点中点权k大值 又读错题了,输出点一直WA,问的是点权啊 本题加强版强制在线了,那这道题肯定离线啊,边权从小到大加边不就是煞笔提吗 奇怪的是合并的时候 先序遍历 才行...中序和后序都T了
阅读全文
摘要:1483: [HNOI2009]梦幻布丁 题意:一个带颜色序列,一种颜色合并到另一种,询问有多少颜色段 一种颜色开一个链表,每次遍历小的合并到大的里,顺带维护答案 等等,合并方向有规定? 令col[x]代表给颜色x分配的编号,直接交换编号 WA了三次我还有救吗 cpp include include
阅读全文
摘要:2733: [HNOI2012]永无乡 题意:加边,询问一个连通块中k小值 终于写了一下splay启发式合并 本题直接splay上一个节点对应图上一个点就可以了 并查集维护连通性 合并的时候,把size小的树的所有节点插入到size大的中,每个点最多插入log次,复杂度$O(nlogn insert
阅读全文
摘要:题意: 一个序列,求k个不相同的长度属于$[L,R]$的区间使得和最大 前缀和,对于每个r找最小的a[l] 然后我yy了一个可持久化线段树做法...也许会T 实际上主席树就可以了,区间k小值 然后看hzwer题解发现还有更有趣的做法,差一点就想到了 $(l,r,x)$表示左端点在$[l,r]$,右端
阅读全文
摘要:题意: 一张图,删除边,求两点之间的割边数量。保证任意时刻图连通 任求一棵生成树,只有树边可能是割边 时间倒流,加入一条边,就是两点路径上的边都不可能是割边,区间覆盖... 然后本题需要把边哈希一下,手写哈希比map快很多 貌似还有一种不用树剖的做法,不管了
阅读全文
摘要:传送门 题意:长为$n \le 10^5$的数字,给出$m \le 10^5$个限制$[l1,r1]\ [l2,r2]$两个子串完全相等,求方案数 把所有要求相等的位置连起来,不就是$9*10^{连通块个数}$嘛 但是最坏情况要连$nm$次啊 有很多都是重复的太浪费了 于是各种乱搞,甚至想了一下分块
阅读全文
摘要:题意: 给出若干相等和不等关系,判断是否可行 woc NOI考这么傻逼的题飞快打了一个种类并查集交上了然后爆零... 发现相等和不等看错了异或一下再叫woc90分 然后发现md$a \neq b, a \neq c,不能得到b = c$ 老老实实的把所有相等关系加并查集然后不等关系来判断吧,唉
阅读全文