摘要: 此类型题目有两种比较常见的做法:树链剖分和树上差分。 本题有多组修改一组询问,因此树上差分会比树链剖分优秀很多。 这里两种方法都进行介绍。 树链剖分和树上差分的本质都是将一颗树转换为一个区间,然后进行操作。 也就是说,先将一颗树变成区间,然后套用线段树/树状数组和差分。 树链剖分的具体流程不多加叙述 阅读全文
posted @ 2018-10-25 16:17 Ilverene 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 二分图匹配的常用算法有匈牙利算法和Dinic算法,这里只讨论前者。 所谓二分图,就是指一类能够被分成两半的图,其中每一半的点都没有任何边连接。 而二分图的匹配,就是指二分图的一个子图中任意两条边都没有公共点。(这个子图就是一个匹配) 本题求的是最大匹配数,顾名思义,就是匹配中边数最大为多少。 匈牙利 阅读全文
posted @ 2018-10-25 16:16 Ilverene 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 在网上某篇神奇的教程和@codesonic 大佬的标程帮助下,我又肝完了Leafy Tree,跑过来写篇题解(好像以前写过一篇?) 什么是Leafy Tree? Leafy Tree由两种节点组成:辅助节点与叶子节点。 叶子节点储存值,而辅助节点储存左右孩子中大的那个值。 注意:辅助节点必定有两个孩 阅读全文
posted @ 2018-10-25 16:14 Ilverene 阅读(299) 评论(0) 推荐(1) 编辑
摘要: 看了一下题解里的zkw线段树,感觉讲的不是很清楚啊(可能有清楚的但是我没翻到,望大佬勿怪)。 决定自己写一篇。。。希望大家能看明白。。。 zkw线段树是一种优秀的非递归线段树,速度比普通线段树快两道三倍,同时代码量不大。 (当然,存在很多线段树可做zkw不可做的题) zkw线段树的核心思路就是先修改 阅读全文
posted @ 2018-10-25 16:14 Ilverene 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 感觉数位DP有点弱,强化一下。。。 这道题是一道比较裸的数位DP。 我们用$dp[i][j]$表示长度为$i$最高位为$j$的windy数有多少个,状态转移方程为$dp[i][j]=\sum_{abs(j k) =2}{dp[i 1][k]}$。 然后有一个小优化(其实不能算优化吧),就是算一下输入 阅读全文
posted @ 2018-10-25 16:13 Ilverene 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题目:传送门 这道题根本不用lca,也没有部分分。。。 考虑求两个点xy的lca的深度。 我们将x到树根所有点的值都加1,然后查询y到根的和,其实就是lca的深度。 所以本题离线一下上树剖乱搞就可以了。 AC代码如下:718ms 17348Kib 阅读全文
posted @ 2018-10-25 15:48 Ilverene 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 这道题刚开始正向思维,然后处理重复的时候咕咕了。 参考了@巨型方块 大佬的题解后AC了,在这里就说几个我觉得比较重要或是容易被忽略的点,然后补充一些跳过的证明。 这道题的状态可以设为$dp[i][j][k]$,意思是长度为$i$,然后第$i$位为$j$,第$i-1$位为$k$的不是萌数的数量。 那么 阅读全文
posted @ 2018-10-24 21:39 Ilverene 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 这道题可以用珂朵莉树做,但是由于数据比较不随机,而我也没有手写一颗平衡树,所以就被卡掉了,只拿了70分。 珂朵莉树是一种基于平衡树的(伪)高效数据结构。 它的核心操作是推平一段区间。 简而言之,就是把之前的零零碎碎的都干掉,用一个美而饱满的大区间取代。 然后我们更新操作和查询操作就暴力遍历一遍,统计 阅读全文
posted @ 2018-10-24 21:37 Ilverene 阅读(583) 评论(1) 推荐(0) 编辑
摘要: 今天模拟赛考了这道题,那就来水一篇题解吧。。。(话说提高组模拟赛考什么省选题啊??) 这道题要我们求一条线段最多能经过的三角形数量。 回想小学学过的奥数,老师告诉过我们这样一件事:`点无大小 线无粗细`。 既然如此,为什么不能把这条线段看成一条巨大的把三角形看成点呢? 那么本题的思路就出来了:我们把 阅读全文
posted @ 2018-10-24 21:32 Ilverene 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 这是一道看似复杂其实也不简单的思维题。 其实思路很明显。 因为这道题的数据范围比较大,有1e5的询问,如果暴力(像我考场上那样打平衡树)的话可以做到$mnlogn$。 但那样也是稳T。 经过思考之后我们可以发现,这道题必定要使用m的解法,也就是对于每一个询问$O1$求解。(总不可能$mlogn$求解 阅读全文
posted @ 2018-10-24 21:30 Ilverene 阅读(281) 评论(0) 推荐(0) 编辑