随笔分类 - 题解
摘要:这道题。。。好像是第一道我自己切出来的黑题。。。 先说一句,牛顿二项式蒟蒻并不会,可以说是直接套结论。 求诸位老爷轻喷。 这道题用 卡特兰数 搞。 卡特兰数这玩意从普及组初赛一路考到省选,十分有用。 如果不清楚这个概念的话可以看一下 "这里" 。 卡特兰数是有两种计算方法: 1) 用递推算。 2)
阅读全文
摘要:本题运用卡特兰数求解。 卡特兰数有两种表达方式: 1)$h_i=\sum^{k=0}_{i 1}h_kh_{i k 1}$ 2)$h_i=\frac{1}{n+1}C^{n}_{2n}$ 运用卡特兰数解题的一般步骤是: 1. 证明题目所求的数经过简化/变形后,可以表达为卡特兰数的第一种形式。 2.
阅读全文
摘要:说起来这是今天第三道卡特兰数了。。。 楼上的几篇题解好像都是直接看出这是卡特兰数,所以我就写一下为什么这道题可以用卡特兰数吧。 考察这样相邻的两项:$a_{2i 1}$与$a_{2i}$,根据题目的第二条原则显然有$a_{2i 1}
阅读全文
摘要:此类型题目有两种比较常见的做法:树链剖分和树上差分。 本题有多组修改一组询问,因此树上差分会比树链剖分优秀很多。 这里两种方法都进行介绍。 树链剖分和树上差分的本质都是将一颗树转换为一个区间,然后进行操作。 也就是说,先将一颗树变成区间,然后套用线段树/树状数组和差分。 树链剖分的具体流程不多加叙述
阅读全文
摘要:二分图匹配的常用算法有匈牙利算法和Dinic算法,这里只讨论前者。 所谓二分图,就是指一类能够被分成两半的图,其中每一半的点都没有任何边连接。 而二分图的匹配,就是指二分图的一个子图中任意两条边都没有公共点。(这个子图就是一个匹配) 本题求的是最大匹配数,顾名思义,就是匹配中边数最大为多少。 匈牙利
阅读全文
摘要:在网上某篇神奇的教程和@codesonic 大佬的标程帮助下,我又肝完了Leafy Tree,跑过来写篇题解(好像以前写过一篇?) 什么是Leafy Tree? Leafy Tree由两种节点组成:辅助节点与叶子节点。 叶子节点储存值,而辅助节点储存左右孩子中大的那个值。 注意:辅助节点必定有两个孩
阅读全文
摘要:看了一下题解里的zkw线段树,感觉讲的不是很清楚啊(可能有清楚的但是我没翻到,望大佬勿怪)。 决定自己写一篇。。。希望大家能看明白。。。 zkw线段树是一种优秀的非递归线段树,速度比普通线段树快两道三倍,同时代码量不大。 (当然,存在很多线段树可做zkw不可做的题) zkw线段树的核心思路就是先修改
阅读全文
摘要:感觉数位DP有点弱,强化一下。。。 这道题是一道比较裸的数位DP。 我们用$dp[i][j]$表示长度为$i$最高位为$j$的windy数有多少个,状态转移方程为$dp[i][j]=\sum_{abs(j k) =2}{dp[i 1][k]}$。 然后有一个小优化(其实不能算优化吧),就是算一下输入
阅读全文
摘要:题目:传送门 这道题根本不用lca,也没有部分分。。。 考虑求两个点xy的lca的深度。 我们将x到树根所有点的值都加1,然后查询y到根的和,其实就是lca的深度。 所以本题离线一下上树剖乱搞就可以了。 AC代码如下:718ms 17348Kib
阅读全文
摘要:这道题刚开始正向思维,然后处理重复的时候咕咕了。 参考了@巨型方块 大佬的题解后AC了,在这里就说几个我觉得比较重要或是容易被忽略的点,然后补充一些跳过的证明。 这道题的状态可以设为$dp[i][j][k]$,意思是长度为$i$,然后第$i$位为$j$,第$i-1$位为$k$的不是萌数的数量。 那么
阅读全文
摘要:这道题可以用珂朵莉树做,但是由于数据比较不随机,而我也没有手写一颗平衡树,所以就被卡掉了,只拿了70分。 珂朵莉树是一种基于平衡树的(伪)高效数据结构。 它的核心操作是推平一段区间。 简而言之,就是把之前的零零碎碎的都干掉,用一个美而饱满的大区间取代。 然后我们更新操作和查询操作就暴力遍历一遍,统计
阅读全文
摘要:今天模拟赛考了这道题,那就来水一篇题解吧。。。(话说提高组模拟赛考什么省选题啊??) 这道题要我们求一条线段最多能经过的三角形数量。 回想小学学过的奥数,老师告诉过我们这样一件事:`点无大小 线无粗细`。 既然如此,为什么不能把这条线段看成一条巨大的把三角形看成点呢? 那么本题的思路就出来了:我们把
阅读全文
摘要:这是一道看似复杂其实也不简单的思维题。 其实思路很明显。 因为这道题的数据范围比较大,有1e5的询问,如果暴力(像我考场上那样打平衡树)的话可以做到$mnlogn$。 但那样也是稳T。 经过思考之后我们可以发现,这道题必定要使用m的解法,也就是对于每一个询问$O1$求解。(总不可能$mlogn$求解
阅读全文
摘要:不管怎么说,这都不是道紫题吧。。。 这里采用的思想有点类似轻重链剖分。 我们按照每个节点在序列里面出现的顺序,把每一个节点连出去的边都排一个序。 这样(如果序列没错)肯定会按照序列的方式遍历完全图。 所以我们就按照这个图跑一遍BFS。 一边BFS一边查看是否符合。 程序的速度不算特别快,最优解ran
阅读全文
摘要:这道题原本写了一个很复杂的DFS,然后陷入绝望的调试。 看了一下题解发现自己完全想复杂了。 这里大概就是补充一些题解没有详细解释的代码吧。。。 (小声BB)现在最优解rank4(话说$O2$负优化什么鬼啊) 程序主题内容如下。 前面是读入数据没有什么好讲的。 在读入a的时候先判断一下有没有自环,有的
阅读全文
摘要:这道题绝不是紫题。。。 题目的意思其实是让你求一个无向无重边图的直径。 对于求直径的问题我们以前研究过树的直径,可以两遍dfs或者两边bfs解决。 对于图显然不能这样解决,因为图上两点之间的简单路径不唯一。 那怎么解决这个问题呢? 能不能把环都搞掉呢? 于是乎,我们想到了强连通分量。 因此先用tar
阅读全文
摘要:这道题我第一次的想法是直接判环的数量,然而事实证明实在是太naive了。 随便画个图都可以卡掉我的解法。(不知道在想什么) 这道题的正解是拓扑排序。 朴素的想法是对所有边都跑一次拓扑,但这样$O(m(n+m))$会炸,于是可以有下面的优化。 我们找到所有入度不为零的点,然后把他们每一个都删掉一条边跑
阅读全文
摘要:这道题看起来就是个裸的拓扑排序,抄上模板就能AC。 上面这种想法一看就不现实,然鹅我第一次还真就这么写了,然后被随意hack。 我们需要注意一句话: 现在,酒店希望能求出一个最优的菜肴的制作顺序,使得小 A能尽量先吃到质量高的菜肴: 这句话什么意思呢? 看上去它是说想要一个字典序最小的排列,但我们可
阅读全文
摘要:这道题开10倍左右一直MLE+RE,然后尝试着开了20倍就A了。。。窒息 对于这道题目,我们考虑使用线段树合并来做。 所谓线段树合并,就是把结构相同的线段树上的节点的信息合在一起,合并的方式比较类似左偏树什么的。 我们对于每个节点用权值线段树查询大于它的子节点数量,然后把当前节点并到它的父亲上面去。
阅读全文
摘要:这道题采用权值线段树合并的解法。 首先讲一下解法中出现的两个概念:权值线段树与线段树合并。 所谓权值线段树,可以理解为维护的信息反过来的普通线段树,我个人认为值域线段树这个名字其实要准确一些。 举个例子,我们将序列$1,1,2,3,4,4,4,5,6,6$中的数依次插入,那么插入完成之后的效果图大概
阅读全文

浙公网安备 33010602011771号