[BZOJ4456][ZJOI2016]旅行者:分治+最短路

摘要: 分析 类似于点分治的思想,只统计经过分割线的最短路,然后把地图一分为二。 代码 阅读全文
posted @ 2019-02-18 11:37 ErkkiErkko 阅读(111) 评论(0) 推荐(0) 编辑

[BZO3572][HNOI2014]世界树:虚树+倍增

摘要: 分析 思维难度几乎为$0$的虚树码农(并不)题。 代码 cpp include define rin(i,a,b) for(register int i=(a);i=(b); i) define trav(i,a) for(register int i=head[a];i;i=e[i].nxt) d 阅读全文
posted @ 2019-02-15 12:02 ErkkiErkko 阅读(206) 评论(0) 推荐(0) 编辑

树上最小权链覆盖:可并堆

摘要: 题目描述 给出一棵树和若干条直上直下的链,每条链有权值(非负) 用权值和尽量小的链覆盖树上所有的点 $n,m \leq 1e6$ 分析 猫老师课件上的题。 先考虑本问题在链上的形式,即最小权区间覆盖,这个问题有一个经典做法,即使用线段树优化DP。但是我们发现,由于树的形态,这个算法在树上不具有较强的 阅读全文
posted @ 2019-02-15 11:20 ErkkiErkko 阅读(530) 评论(0) 推荐(0) 编辑

[BZOJ4237]稻草人:CDQ分治+单调栈

摘要: 分析 按$y$排序后CDQ分治,可以发现每个点可以影响的是$x$坐标的一段区间,可以使用扫描线+单调栈,在单调栈上二分即可解决,时间复杂度$O(n \log^2 n)$。 通过归并排序可以显著减小常数。 代码 阅读全文
posted @ 2019-02-14 12:09 ErkkiErkko 阅读(150) 评论(0) 推荐(0) 编辑

[BZOJ3453]tyvj 1858 XLkxc:拉格朗日插值

摘要: 分析 之前一直不知道拉格朗日插值是干什么用的,只会做模板题,做了这道题才明白这个神奇算法的用法。 由题意可知,$f(x)$是关于$x$的$k+1$次函数,$g(x)$是关于$x$的$k+2$次函数,$ans(x)$是关于$x$的$k+3$次函数。 由于点值连续,插值可以做到$O(n)$,求$g(x) 阅读全文
posted @ 2019-02-14 11:46 ErkkiErkko 阅读(209) 评论(0) 推荐(0) 编辑

[BZOJ5463][APIO2018]铁人两项:Tarjan+圆方树

摘要: 分析 根据题目中的要求,从$s$出发前往$f$一定可以,并且只可能经过这两个结点所在的点双连通分量和它们之间的点双连通分量,因此切换点$c$只能从这些点中选取。 建出圆方树后,因为圆方树上一条路径的两个端点(圆点)不能作为切换点,并且路径上其他的圆点都被两个路径上的点双连通分量所包含,可以发现,如果 阅读全文
posted @ 2019-02-13 21:42 ErkkiErkko 阅读(148) 评论(0) 推荐(0) 编辑

《正确编织梦境的方法》命题报告

该文被密码保护。 阅读全文
posted @ 2019-01-30 22:02 ErkkiErkko 阅读(11) 评论(0) 推荐(0) 编辑

《听我说,海蜗牛》命题报告

该文被密码保护。 阅读全文
posted @ 2019-01-30 21:42 ErkkiErkko 阅读(11) 评论(0) 推荐(0) 编辑

[THUSC2017]大魔法师:线段树

摘要: 分析 在线段树上用$4 \times 4$的矩阵打标记。 代码 cpp include define rin(i,a,b) for(register int i=(a);i=(b); i) define trav(i,a) for(register int i=head[a];i;i=e[i].nx 阅读全文
posted @ 2019-01-20 23:59 ErkkiErkko 阅读(223) 评论(0) 推荐(0) 编辑

THU-CCF WC2019两开花记

摘要: 今年年初,清华大学举办的THUWC2019即将正式开启,我将继续扮演蒟蒻OIER,努力创造一个菜鸡的形象,THU CCF WC两爆炸,笑掉各位大牙,大家多多关注。 Day0 广州好热啊╰(‵□′)╯! 上午坐飞机到广州,休息了一下午,晚上吃了饭看了看前年夏令营的题(话说终于知道wxl学长讲的那道来历 阅读全文
posted @ 2019-01-19 23:53 ErkkiErkko 阅读(701) 评论(5) 推荐(0) 编辑

[THUSC2017]杜老师:bitset+线性基

摘要: 算法一(50pts) 分析 有一个很显然的暴力做法,对于区间内的每个数开个bitset,然后暴力分解质因数。如果对于一个数,它的一个质因子的指数是奇数,那么就把bitset的对应位设成$1$。答案就是异或方程组解的个数,也就是$2^{fail}$,$fail$表示向线性基插入失败的数的个数。 代码 阅读全文
posted @ 2019-01-19 12:33 ErkkiErkko 阅读(457) 评论(0) 推荐(0) 编辑

斯坦纳树总结

摘要: 这个东西很久以前就学过了,不过前几天看到后又一脸懵逼,于是赶紧滚来复习一下。 简介 斯坦纳树是将图的一个指定点集内的所有点连通的一棵树,常见的问题有最小斯坦纳树(Minimal Steiner Tree)(怎么也叫MST啊喂)。和最小生成树不同的是,斯坦纳树可以包含不在指定点集内的点。 求解方法 斯 阅读全文
posted @ 2019-01-18 22:15 ErkkiErkko 阅读(791) 评论(1) 推荐(0) 编辑

最小树形图简单总结

摘要: [BZOJ4349]最小树形图&[BZOJ2260]商店购物 分析? 做法都是先通过最优方案每种选一个,这样最后的答案一定最优。每种选一个的最优方案可以用最小树形图求。 不要忘记写 。 第二个题坑点超多,有$M_i=0$的情况,据说还有自环。 代码 cpp include define rin(i, 阅读全文
posted @ 2019-01-18 10:06 ErkkiErkko 阅读(385) 评论(0) 推荐(0) 编辑

虚树总结&题单&简要题解

摘要: 简介 虚树,即剔除所有无关结点,只保留询问点和询问点的相关结点(两两之间的LCA),建一棵新树,这棵新树就是虚树。通过虚树,可以有效的减小询问(甚至修改)的复杂度。设询问点的个数是$k$,那么建虚树的一般方法的时间复杂度为$O(k \log k)$。 构建方法 1. 把所有询问点按dfs序排个序。 阅读全文
posted @ 2019-01-17 21:46 ErkkiErkko 阅读(266) 评论(0) 推荐(0) 编辑

反演姿势总结

摘要: 参考博客 "戳这里" ,yyb怎么这么强啊。 反演 如果有$g(n)=\sum_{i=0}^{n}a[n][i]f(i)$, 我们想构造一个矩阵$b$,满足$f(n)=\sum_{i=0}^{n}b[n][i]g(i)$, $a$是一个下三角矩阵,$b$是$a$的逆矩阵就可以了。 更具体的,就是要满 阅读全文
posted @ 2019-01-14 10:27 ErkkiErkko 阅读(344) 评论(0) 推荐(0) 编辑

[CF1101F]Trucks and Cities:分治优化决策单调性

摘要: 分析 好像是有一个叫这个名字的算法, "链接" 。 令$f[i][j][k]$表示一辆每公里耗油量为$1$的货车从$i$到$j$中途加$k$次油最小的油箱容量。枚举所有的起点和中途加油的次数,这样就固定了两维,显然有DP方程: $$ f[i][j][k]= \min_{p=i}^{j} ( \max 阅读全文
posted @ 2019-01-12 16:31 ErkkiErkko 阅读(352) 评论(0) 推荐(0) 编辑

[BZOJ1697][USACO2007 FEB]Cow Sorting牛排序:贪心+置换

摘要: 分析 一个月前做的一道题补一下题解,就简单写一写吧。 单独考虑每一个循环节,如果只进行内部的调整,最优方案显然是把最小的绕这个循环交换一圈。 但是借助全局最小值可能使答案更优,两种情况取个$\max$就好了。 代码 cpp include define rin(i,a,b) for(register 阅读全文
posted @ 2019-01-11 21:43 ErkkiErkko 阅读(242) 评论(0) 推荐(0) 编辑

[SPOJ20174]DIVCNT3 - Counting Divisors (cube):Min_25筛

摘要: 分析 首先,STO ywy OTZ,ywy TQL%%%! 说一下这道题用min_25筛怎么做。 容易发现,对于所有质数$p$,都满足$f(p)=4$,于是我们就可以直接通过$[1,x]$内的质数的个数$h(x)$来求出$g(x)=\sum_{i=1}^{x}f(i) \times [i \in p 阅读全文
posted @ 2019-01-11 19:01 ErkkiErkko 阅读(261) 评论(0) 推荐(0) 编辑

[BZOJ3796]Mushroom追妹纸:后缀自动机+KMP

摘要: 分析 这道题有个$O(n)$的后缀自动机做法,感觉很好理解就在这说一下。 先对$s1$和$s2$求最长公共子串,对于$s2$的每一个下标$i$,求一个$f[i]$表示以$s2[i]$结尾的最长匹配长度。 KMP求出$s3$在$s2$上的所有结束位置,然后扫一遍$s2$统计答案,很简单。 代码 cpp 阅读全文
posted @ 2019-01-11 16:18 ErkkiErkko 阅读(141) 评论(0) 推荐(0) 编辑

[LOJ6053]简单的函数:Min_25筛

摘要: 分析 因为题目中所给函数$f(x)$的前缀和无法较快得出,考虑~~打表~~以下两个函数: $$ g(x)=x \times [x是质数] $$ $$ h(x)=1 \times [x是质数] $$ 这两个函数的前缀和都可以通过Min_25筛第一阶段的处理得出,时间复杂度为$O(\frac{n^{\f 阅读全文
posted @ 2019-01-07 22:34 ErkkiErkko 阅读(195) 评论(0) 推荐(0) 编辑

[思路题][LOJ2290][THUWC2017]随机二分图:状压DP+期望DP

摘要: 分析 考虑状压DP,令$f[sta]$表示已匹配状态是$sta$($0$代表已匹配)时完美匹配的期望数量,显然$f[0]=1$。 一条边出现了不代表它一定在完美匹配内,这也导致很难去直接利用题目中的边组来解决问题。 对于第二类边组,如果把两条边分开考虑(可以理解为把一个第二类的边组看成两个第一类的边 阅读全文
posted @ 2018-12-27 08:59 ErkkiErkko 阅读(163) 评论(0) 推荐(0) 编辑

[LOJ2289][THUWC2017]在美妙的数学王国中畅游:Link-Cut Tree+泰勒展开

摘要: 分析 ~~又有毒瘤出题人把数学题出在树上了。~~ 根据泰勒展开,有: $$e^x=1+\frac{1}{1!}x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+...$$ $$sin(x)=x \frac{1}{3!}x^3+\frac{1}{5!}x^5 ...$$ 然而题目里$ 阅读全文
posted @ 2018-12-27 08:28 ErkkiErkko 阅读(209) 评论(0) 推荐(0) 编辑

[LOJ2288][THUWC2017]大葱的神力:搜索+背包DP+费用流+随机化

摘要: 分析 测试点1、2: 搜索+剪枝。 测试点3: 只有一个抽屉,直接01背包。 测试点4、5: 每个物品体积相同,说明每个抽屉能放下的物品个数固定,建图跑费用流。 测试点6: 每个物品体积相近,经过验证发现每个抽屉能放下的物品个数仍然固定,费用流。 测试点7: 除了第一个物品,其他物品体积相同。所以可 阅读全文
posted @ 2018-12-27 08:07 ErkkiErkko 阅读(470) 评论(0) 推荐(0) 编辑

[省选练习]S

摘要: [省选练习]六:状压DP 题意 给定一个正整数$N$,数据满足$N$最多含六个不同的质因子。现在从一个空数列开始,把$N$的因数一个一个加到数列中,每次加入的数可能重复,但必须都大于$1$。每次添加新的数字的时候,需要保证这个数$x$与数列中已有的数至多一个有大于$1$的公因数。例如,当$N$等于$ 阅读全文
posted @ 2018-12-26 16:49 ErkkiErkko 阅读(89) 评论(0) 推荐(0) 编辑

[省选练习]P

摘要: [省选练习]Path:期望DP+Dijkstra 题意 \(n,m \leq 10^5\) 分析 很有趣的一道题。 记$dis[x]$为从$x$到$n$的期望时间。 题目中要求的最优策略,实际上就是只从$dis$大的地方向$dis$小的地方移动。 所以,对于两个相邻的结点$x,y$,$dis[x]$ 阅读全文
posted @ 2018-12-25 21:43 ErkkiErkko 阅读(109) 评论(0) 推荐(0) 编辑

动态淀粉质(划掉)题单&简要题解

摘要: 简介 动态点分治的思想:还不太清楚诶怎么办。 大概是通过降低树高来降低每次修改和询问的复杂度吧,还可以把树上一个连通块的信息统计到一个点(重心)上。具体实现方式和普通的静态点分治没有太大的区别,只是把点分治时递归到的每层重心用边连起来(当然不是在原树中直接连),构成一个叫做点分树(VPT)的东西,它 阅读全文
posted @ 2018-12-24 22:08 ErkkiErkko 阅读(251) 评论(0) 推荐(0) 编辑

[CF1093G]Multidimensional Queries:线段树

摘要: 分析 非常有趣的一道题。 式子中的绝对值很难处理,但是我们发现: $$\sum_{i=1}^{k}|a_{x,i} a_{y,i}|=\sum_{i=1}^{k}max(a_{x,i} a_{y,i},a_{y,i} a_{x,i})=max\{\sum_{i=1}^{k}c_ia_{x,i} \s 阅读全文
posted @ 2018-12-20 19:43 ErkkiErkko 阅读(291) 评论(2) 推荐(0) 编辑

[BZOJ3199][SDOI2013]escape:半平面交

摘要: 分析 好像叫V图什么的。 容易发现,对于每个点,其监视的范围就是这个点与其它所有点的垂直平分线分割平面后的半平面交。由于数据范围很小,所以我们可以直接枚举每个点,使用双端队列求出其监视的范围。若两个点的监视范围有公共边,那么就在这两个点之间连一条边,边权为$1$。然后从起点bfs一遍即可。 这里重点 阅读全文
posted @ 2018-12-19 13:53 ErkkiErkko 阅读(218) 评论(0) 推荐(0) 编辑

计算几何模板

摘要: 二维凸包 "洛谷P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows" 最小圆覆盖 "[BZOJ2823][AHOI2012]信号塔" 半平面交 "[BZOJ3199][Sdoi2013]escape" "题解" 旋转卡壳 "[POJ2187]Beauty C 阅读全文
posted @ 2018-12-18 11:09 ErkkiErkko 阅读(143) 评论(0) 推荐(0) 编辑

[洛谷P5106]dkw的lcm:欧拉函数+容斥原理+扩展欧拉定理

摘要: 分析 考虑使用欧拉函数的计算公式化简原式,因为有: $$lcm(i_1,i_2,...,i_k)=p_1^{q_{1\ max}} \times p_2^{q_{2\ max}} \times ... \times p_m^{q_{m\ max}}$$ 其实就是分解质因数,丢到那个式子里: $$\v 阅读全文
posted @ 2018-12-18 08:55 ErkkiErkko 阅读(274) 评论(1) 推荐(0) 编辑

[POJ1637]Sightseeing tour:混合图欧拉回路

摘要: 分析 混合图欧拉回路问题。 一个有向图有欧拉回路当且仅当图连通并且对于每个点,入度$=$出度。 入度和出度相等可以联想到(我也不知道是怎么联想到的)网络流除了源汇点均满足入流$=$出流。于是可以考虑先将无向边随意定向后,通过网络流来调整无向边的方向以达到每个点的入度和出度相等的目的。 建图方法如下: 阅读全文
posted @ 2018-12-16 01:22 ErkkiErkko 阅读(143) 评论(0) 推荐(0) 编辑

重复旋律:后缀数组+后缀自动机

摘要: 后缀数组(SA) hihoCoder 1407 : 后缀数组二·重复旋律2 题意 一段旋律中出现次数至少为两次的不重叠旋律最长是多少? 分析 还是二分答案后挖去$height[i]=mid){ minpos=std::min(minpos,sa[i]); maxpos=std::max(maxpos 阅读全文
posted @ 2018-12-14 00:36 ErkkiErkko 阅读(296) 评论(0) 推荐(0) 编辑

[BZOJ3236][AHOI2013]作业:树套树/莫队+分块

摘要: 分析 第一问随便搞,直接说第二问。 令原数列为$seq$,$pre_i$为$seq_i$这个值上一个出现的位置,于是可以简化询问条件为: 1. $l \leq i \leq r$ 2. $a \leq seq_i \leq b$ 3. $pre_i include include include i 阅读全文
posted @ 2018-12-12 12:01 ErkkiErkko 阅读(223) 评论(0) 推荐(1) 编辑

Paste Bin

该文被密码保护。 阅读全文
posted @ 2018-12-07 22:25 ErkkiErkko 阅读(31) 评论(0) 推荐(0) 编辑

C++ STL bitset总结

摘要: 基础用法 "C++ Reference" "神犇博客" 余下的就是例题了 "[BZOJ3687]简单题" 考虑$DP$,设$f[i][j]$表示前$i$个元素的算数和为$j$的子集个数,有: $$f[i][j]=f[i 1][j]+f[i 1][j a[i]]$$ 时间复杂度为$O(n\sum a_ 阅读全文
posted @ 2018-12-06 15:56 ErkkiErkko 阅读(449) 评论(0) 推荐(0) 编辑

[BZOJ1478&1488&1815][SGU282]Isomorphism:Polya定理

摘要: 分析 三倍经验题,本文以 "[BZOJ1478][SGU282]Isomorphism" 为例展开叙述,主体思路与另外两题大(wan)致(quan)相(yi)同(zhi)。 这可能是博主目前写过最长也是最认真的题解了。 题目中规定“若两个已染色的图,其中一个图可以通过结点重新编号而与另一个图完全相同 阅读全文
posted @ 2018-12-05 11:56 ErkkiErkko 阅读(332) 评论(0) 推荐(0) 编辑

[BZOJ1547]周末晚会:Burnside引理+DP

摘要: 分析 Attention!这道题的模数是$1e8+7$。 注意到 循环同构会被认为是同一种方案 ,我们可以把顺时针旋转每个人的位置作为置换,容易发现这些置换一定会形成一个置换群,于是题目所求的 所有合法的方案数 便是这个置换群下等价类的数目,可以使用Burnside引理解决。 考虑如何求在置换“顺时 阅读全文
posted @ 2018-12-04 22:19 ErkkiErkko 阅读(602) 评论(0) 推荐(1) 编辑

[CF1082G]Petya and Graph:最小割

摘要: 分析 发这篇博客的目的就是要让你们知道博主到底有多菜。 类似于 [NOI2006]最大获利 。(明明就是一模一样好吧!) 不知道怎么了,半秒就想到用网络流,却没想出怎么建图。 连这么简单的题都没做出来,我实在是太菜了。 反思反思! 简述一下建图方式: 把原图中的边看作点。 1. S向每条边对应的的点 阅读全文
posted @ 2018-11-29 15:59 ErkkiErkko 阅读(245) 评论(0) 推荐(0) 编辑

多项式总结(unfinished)

摘要: 试试以二级标题为主的格式。 多项式相关 注:本篇博客 不 包含$FFT$基础姿势。如果您想要阅读本篇博客,请确保自己对$FFT,NTT$有基本的认识并且能够独立写出代码。 多项式是什么? 左转数学七年级上册课本。 多项式的两种表示法 系数表示法和点值表示法,过于基础不多解释。 多项式的四则运算及扩展 阅读全文
posted @ 2018-11-28 22:07 ErkkiErkko 阅读(349) 评论(0) 推荐(0) 编辑

[BZOJ2225][SPOJ2371]LIS2 - Another Longest Increasing Subsequence Problem:CDQ分治+树状数组+DP

摘要: 分析 这回试了一下三级标题,不知道效果怎么样? 回到正题,二维最长上升子序列......嗯,~~我会树套树~~。 考虑$CDQ$分治,算法流程: 1. 先递归进入左子区间。 2. 将左,右子区间按$x$排序。 3. 归并处理左右子区间,在过程中使用树状数组加速$DP$。 4. 还原右区间,清空树状数 阅读全文
posted @ 2018-11-27 00:40 ErkkiErkko 阅读(152) 评论(0) 推荐(0) 编辑