03 2019 档案
摘要:Luogu [USACO10OPEN]三角形计数Triangle Counting 题面: "Luogu" 解析 一道挺有趣的计数题。不过好像我的方法不太一样啊?考虑先按极角排序,第一个端点是一定要枚举的,考虑枚举第二个端点时,第二个端点的变化会带给第三个端点的变化,差分一下,再借鉴树状数组区间修改
阅读全文
摘要:关于一些莫队的总结 最近学了一些莫队的应用,先总结如下。 1.一类莫队的优化 对于某一些莫队,当它的修改操作复杂度较高,又具有可差分的性质时,我们可以考虑如下优化方法————给莫队询问操作对应的修改操作“二次离线”。具体来说,设当前左右指针为nl,nr,现在的询问左右指针为ql,qr,有: $1.q
阅读全文
摘要:CF940F Machine Learning 题面: "Luogu" 解析 很简单的一道题。直接套带修改莫队,每次暴力统计答案即可。复杂度有保证吗?当然有,不难发现区间内数字出现次数的mex不会大于$\sqrt{2 len}$,因为$\frac{mex(mex 1)}{2} \leq len$。
阅读全文
摘要:Luogu3330 [ZJOI2011]看电影 题面: "Luogu" 解析 不看题解完全想不到系列。。。 这题的思路是真的神仙,先考虑无解的情况,那么是$N
阅读全文
摘要:BZOJ4767 两双手 题面: "BZOJ" 解析 容斥水题。先解出走到结束点和禁止点的步数(不难发现这个步数是唯一的)。然后去掉绝对不会走到的禁止点,现在考虑容斥去除禁止点的影响,不难想到+ 1的容斥方法,但是怎么确定贡献呢?对于至少走$i$个禁止点,方案数就是强制走$i$个点的方案数,其后再随
阅读全文
摘要:Luogu3214 [HNOI2011]卡农 题面: "Luogu" 解析 题意即为选出$m$个不同的数,使其异或和为0,发现其实就是先选前$m 1$个数,然后最后一个数应该等于前面所有数的异或和,这样计算两种不合法的情况:1.最后一个数为0。2.最后一个数与前面的数重复。先看1,发现是选$m 1$
阅读全文
摘要:Luogu3349 [ZJOI2016]小星星 题面: "洛谷" 解析 容斥原理好题。称原图点集为A,树的点集为B,那么题目中所求即为B中元素与A中元素一一对应且边合法的方案数,考虑容斥,设$g(S)(S\subseteq A)$表示B仅与S中元素对应的方案数(不一定对应完全),那么有: $$ans
阅读全文
摘要:Luogu3726 [AH2017/HNOI2017]抛硬币 范德蒙德卷积 这玩意挺鸡肋的,因为你自己也能推出来,我是在做 "这道题" 时听说它的。 $$\sum_{i=0}^{k}{n \choose i}{ m \choose k i}={n+m \choose k}$$ 直接考虑组合意义证明即
阅读全文
摘要:Luogu3242 [HNOI2015]接水果 题面: "洛谷" 解析 $dfs$序的套路应用,记$dfn[i]$表示点$i$的$dfs$序,$low[i]$表示以点$i$为根的子树中最大的$dfs$序。考虑对于一条路径$(x,y)(dfn[x] \leq dfn[y])$,能够包含它的路径的两个端
阅读全文
摘要:有上下界网络流学习笔记 1.有(无)源汇有上下界最小费用可行流:算法的核心思想是补流。先判断原图是否有源汇,若有则连边$t \to s(\infty/0)$;随后新建超级源汇$S$,$T$;然后对于每一条边$x \to y$,连边$x \to y(high low/w)$;接着对每一个点$x$,计$
阅读全文
摘要:Luogu3345 [ZJOI2015]幻想乡战略游戏 题面: "良心洛谷" 解析 动态点分治。假定我们已经确定了补给点,可以通过在点分树上$O(logn)$统计答案,修改亦可$O(logn)$做到,具体的话就是维护一下当前重心$w$的$\sum_{v} d_v$与$\sum_{v} d_vdist
阅读全文
摘要:BZOJ2870 最长道路tree 题面:又是权限题。。。 解析 这种含多个参数(其中有有关最值的参数)的最优值求解都是套路啊。大概就是通过排序来消除一个参数的影响,然后维护答案。那么这道题就是按权值从大到小排序依次加入,然后当前权值乘上当前最长链即可。如何维护当前最长链呢?发现当两棵树合并后,新树
阅读全文
摘要:BZOJ3779 重组病毒 题面:权限题,去网上看题面吧。 解析 这题可能是出题人比着LCT出的吧。。。 发现每一次的RELEASE与access操作极为神似,RECENTER更是贴心的为你附加了一次RELEASE, 这不就是makeroot中的一次access吗。。。那我们考虑统计答案,发现就是那
阅读全文
摘要:ARC102E Stop. Otherwise... 题面: "Atcoder" 解析 题意即让为每一个骰子选一个点数,使不存在两个骰子点数和为$x$的方案数。 考虑容斥,设当前组成和为$x$的方案数为$t$,$g(i)$表示至少有$i$对和为$x$的方案数,那么有: $$ans=\sum_{i=0
阅读全文
摘要:KDtree学习笔记 推荐一下这位大佬的 "博客" 最近学习了这个数据结构的一些基本应用,在此做一个小结。 KDtree,就是一种用来处理K维数据的数据结构。它的形态就是一颗平衡树,具体来说,我们通过某一种分类方式,使K维空间中的点构成了一颗树,然后我们可以用它来进行高效的搜索剪枝~~其实就是暴力~
阅读全文
摘要:CF908GNew Year and Original Order 题面: "洛谷" 解析 玄学数位dp啊!设$f(i,j,k,0/1)$表示当前填到第i位,有j个数大于等于k,是否抵住上限,转移是显然的,那么如何计算贡献呢?发现对于一个数,若有j个数大于等于k,我们可以计算$\sum_{i=0}^
阅读全文
摘要:BZOJ5016[Snoi2017]一个简单的询问 题面: "BZOJ" 解析 这题的ider挺有意思的。看看数据范围,多半是莫队,但直接统计答案又不行(有4个参数啊),来拆式子,设$Q(i,j)=\sum_{x=0}^{\infty}cnt[0..i][x]\times cnt[0..j][x]$
阅读全文
摘要:Luogu4557[JSOI2018]战争 题面: "洛谷" 解析 如果你不知道什么是闵可夫斯基和,你可以看看 "这位大佬的博客" ,还是挺好理解的。 看看这道题吧,考虑若有相交点,设移动向量为$w$,$a$为凸包$A$中任意一位矢(就是坐标啦),$b$为凸包$B$中任意一位矢,那么一定存在$b+w
阅读全文
摘要:BZOJ1146[CTSC2008]网络管理Network 题面: "BZOJ" 解析 为什么要用树套树啊?整体二分多好,好写又好想。 还是说一下树套树吧,因为博主做这道题本来是奔着这方法来的,结果却用了离线算法水过。 先考虑不带修改的做法。考虑用dfs入栈出栈序上的主席树,入栈+1,出栈 1,那么
阅读全文
摘要:BZOJ3252攻略 题面: "BZOJ" 解析 博主从前在考场上做到过类似的题,当时并没有做出来。今天总算解决了,其实现在想来挺简单的,就是个简单的贪心,然后用线段树维护一下就行了。 代码 cpp include define N 200005 define LL long long define
阅读全文
摘要:BZOJ3772精神污染 题面:权限题,去网上找题面吧。 解析 有两种思考方式:1.考虑每条路径分别被多少条路径覆盖。2.考虑每条路径分别覆盖了多少条路径。两种都简单的说一下吧。 1.可以发现覆盖路径(a,b)的路径两端必然在以a为根的子树和以b为根的子树即dfs序上连续的一段,否则也可以转化为两端
阅读全文
摘要:LOJ6374[SDWC2018 Day1]网格 题面: "LOJ" 解析 "这是大佬的题解" 先考虑没有任何限制的情况,发现可以将两维分开来看,考虑容斥解决掉步长限制,设$g(i)$表示至少$i$步超过限制的方案数,那么有: $$g(i)={R \choose i}{T_x i\times(M_x
阅读全文
摘要:BZOJ2178 圆的面积并 题面:权限题,大意就是给你$n$个圆,求它们的面积并。 解析 计算奇奇怪怪的面积可以使用自适应辛普森法,对每一个$x_0$,与之对应的函数值是直线$x=x_0$与所有圆的相交线段的并,积分即可得到面积。 代码 cpp include define N 1005 usin
阅读全文
摘要:图论基础知识总结 前言 因为博主太菜,好多之前学过的图论算法都要不记得了,于是开了这篇博文提醒自己要记得复习图论。 代码
阅读全文
摘要:Luogu4525【模板】自适应辛普森法1 题面: "洛谷" 解析 讲一讲这东西吧。 自适应辛普森法的原理就是用二次函数来拟合所给函数,然后计算二次函数的积分得到近似答案,这里首先给出二次函数的积分公式(也就是所谓的辛普森公式)并证明。 $$=\int_{l}^{r} F(x){ \rm d}x$$
阅读全文
摘要:Luogu2533[AHOI2012]信号塔 题面: "洛谷" 解析 博主最近在补计算几何,所以做了这道最小圆覆盖板题~~话说最小圆覆盖的复杂度为什么是$O(n)$的啊~~ 代码 cpp // luogu judger enable o2 include define N 1000005 using
阅读全文
摘要:Luogu3320[SDOI2015]寻宝游戏 题面: "洛谷" 解析 树链的并,考虑用$set$维护新插入的节点的$dfs$序的前驱与后继,然后维护树链长度,再减去一段从某点到$root$的距离即可,那么这个点是什么呢?画图手玩发现可以用$set$中$dfs$序最小的点与$dfs$序最大的点的$l
阅读全文
摘要:Luogu3187[HNOI2007]最小矩形覆盖 题面: "洛谷" 解析 板题,旋转卡壳即可。 代码
阅读全文
摘要:Luogu5234[JSOI2012]越狱老虎桥 题面: "洛谷" 解析 题意中的要求即为割掉权值最小的割边,所以先把图缩点(这里应该是边双连通分量),现在考虑增加一条边会对缩点后的树造成什么影响,无非是成环,然后环上的边不能割掉。现在考虑贪心,从小到大加边,若这些边在一条链上,就继续,反之输出答案
阅读全文
摘要:Luogu4716【模板】最小树形图 题面: "洛谷" 解析 没啥好讲的,模板而已,算法也很好理解。 ps:博主终于把这个咕了n久的算法学了~~虽然过一段时间就会忘掉~~ 代码 cpp // luogu judger enable o2 include define N 105 define M 1
阅读全文
摘要:CF1082F Speed Dial 题面: "洛谷" 解析: 写了一个上午,终于写完了~~因为博主实在太菜了~~。这道题我是看着动态规划的标签进来做的。可以发现对于每个号码串,按的快捷键一定对应的是它的前缀,观察到$k$很小,我开始有一个暴力的想法,在状态中把每一个已经确定的前缀记录下来,这样就可
阅读全文
摘要:Luogu4099[HEOI2013]SAO 题面: "洛谷" 解析 计算方案个数,考虑动态规划:设$f(u,j)$表示在以$u$为根的子树中,$u$第$j$个被删除的方案数,考虑转移: 设当前$u$的删除序列长$x$,$v$的删除序列长$y$,枚举子树$v$中有$j$个数先于$u$删除,那么有:
阅读全文
摘要:Luogu2447[SDOI2010]外星千足虫 题面: "洛谷" 解析 ~~这题面中的时间...出题人胆子真大。~~还是用高斯消元,每插入一个方程判一下是否线性相关即可。 代码 cpp // luogu judger enable o2 include include include define
阅读全文
摘要:Luogu3265[JLOI2015]装备购买 题面: "洛谷" 解析 相当于求权值和最小的极大线性无关向量组,像线性基一样,先按权值排序,再从大到小插入即可,中间过程类似于线性基。 代码 cpp // luogu judger enable o2 include include include d
阅读全文
摘要:Luogu3164[CQOI2014]和谐矩阵 题面: "洛谷" 解析 没啥好说的,列出异或方程组高斯消元即可(话说异或方程组和线性基长得好像啊)。 代码 cpp // luogu judger enable o2 include include define pos(i,j) ((i 1) m+j
阅读全文
摘要:Luogu3211[HNOI2011]XOR和路径 题面: "洛谷" 解析 这种位运算的题都是套路啊。很明显将边权拆位,列出转移方程高斯消元计算出每一位为1的期望,再累加贡献即可。 代码 cpp // luogu judger enable o2 include include include de
阅读全文
摘要:3332[ZJOI2013]K大数查询 题面: "洛谷" 解析 离线算法好啊(废话,不然为什么离线)!这道题带区间修改查询$k$小值,如果树套树,要用线段树套线段树,外层维护权值,里层维护区间,复杂度$O(n\log^{2}{n})$,但我们可以用整体二分,虽然复杂度也是$O(n\log^{2}{n
阅读全文
摘要:Luogu1527[国家集训队]矩阵乘法 题面: "洛谷" 解析 排名第$k$大,不妨考虑整体二分,二分第$k$大的数值$mid$,,将大于$mid$的值视作1,添加到树状数组中,对每一个询问,判断它的询问区域中1的点的个数是否大于询问排名,即可将询问分作两部分递归,然而这样的复杂度是$O(n^{2
阅读全文
摘要:Luogu3346[ZJOI2015]诸神眷顾的幻想乡 题面: "洛谷" 解析 观察到树的叶子节点数量很少(题面描述是真的迷,我开始以为是度数小于20),发现对于树上的每一条路径,都能在以某一个叶子节点为根的树中表示为一条从上到下的路径,那么把每一颗树看做一颗$Trie$树,用广义后缀自动机插入即可
阅读全文
摘要:Luogu4035[JSOI2008]球形空间产生器 题面: "洛谷" 解析 根据题目所给公式化简消去二次项,高斯消元即可。 代码 cpp // luogu judger enable o2 include include define N 15 using namespace std; int n
阅读全文
摘要:Luogu3721[AH2017/HNOI2017]单旋 题面: "洛谷" 解析: 考虑模拟题中所述单旋过程,会发现对于一次旋转的操作,就是把它的儿子和父亲接起来,把它置为当前根的父亲,成为新根,用LCT维护即可,而对于插入操作,开一个$set$,查询前驱后继即可,代码细节较多。 代码 // luo
阅读全文
摘要:这是我的第一个博客呢。 这个博客主要用来写一些题解与总结,希望能对来看博客的大佬有所帮助,有不清楚的地方或者有问题的地方可以告知我。
阅读全文
摘要:前言: 今天学习了多项式求逆,总结一下。 这里是 "网上好的博客" 问题: 给定一个多项式$A(x)$,求出多项式$B(x)$,使$A(x)B(x) \equiv 1 \pmod{x^n}$。 解析: 考虑递推求解,假设我们已经求出$B'(x)$,使 $$A(x)B'(x) \equiv 1 \pm
阅读全文

浙公网安备 33010602011771号