共 3 页: 上一页 1 2 3 下一页

二分图上的博弈

摘要:描述 RT 先手必胜条件 起点是二分图最大匹配的必需点。 证明 ~~懒得写了。~~ "链接" 阅读全文
posted @ 2019-02-26 17:37 ErkkiErkko 阅读 (29) 评论 (0) 编辑

[BZOJ4804]欧拉心算:线性筛+莫比乌斯反演

摘要:分析 关于这道题套路到不能再套路了没什么好说的,其实发这篇博客的目的只是为了贴一个线性筛的模板。 代码 cpp include define rin(i,a,b) for(register int i=(a);i=(b); i) define trav(i,a) for(register int i 阅读全文
posted @ 2019-02-25 15:31 ErkkiErkko 阅读 (15) 评论 (0) 编辑

[BZOJ4305]数列的GCD:莫比乌斯反演+组合数学

摘要:分析 一开始想的是对恰好$k$个位置容斥,结果发现对$\gcd$有些无从下手,想了想发现自己又sb了。 考虑对$\gcd$进行容斥处理,弱化条件,现在我们要求的是使$\gcd$是$d$的倍数的方案数,$k$个位置的限制可以用组合数算,最后莫比乌斯反演一下就好了。 时间复杂度为调和级数($O(n \l 阅读全文
posted @ 2019-02-25 11:39 ErkkiErkko 阅读 (34) 评论 (0) 编辑

[BZOJ2669][CQOI2012]局部极小值:DP+容斥原理

摘要:分析 题目要求有且只有一些位置是局部极小值。有的限制很好处理,但是只有嘛,嗯...... 考虑子集反演(话说这个其实已经算是超集反演了吧还叫子集反演是不是有点不太合适),枚举题目给出位置集合的所有超集,计算让这些位置成为局部极小值,而其他位置随意的方案数,这个可以通过DP,从小到大插入每个数解决。 阅读全文
posted @ 2019-02-25 11:09 ErkkiErkko 阅读 (16) 评论 (0) 编辑

两类特殊的Nim游戏:Nim-K游戏与反Nim游戏

摘要:Nim K游戏 描述 有$n$堆石子,每次可从$k$堆石子中拿走任意数量的石子。 两个人轮流拿,谁不能拿谁输。 先手必胜条件 把$n$堆石子的石子数用二进制表示,统计每一个二进制位上$1$的个数。 若每一位上$1$的个数$\mod (k+1)$全为$0$,则先手必败,否则先手必胜。 证明 类比: 一 阅读全文
posted @ 2019-02-25 09:14 ErkkiErkko 阅读 (114) 评论 (0) 编辑

[BZOJ3622]已经没有什么好害怕的了:DP+容斥原理

摘要:分析 说白了就是一道先DP再二项式反演的水题,然后被脑残博主把“多$k$组”看成了“糖果比药片能量大的组数恰好为$k$组”,还改了各种奇怪的地方,最后看了别人的题解才突然意识到这一点。 看来博主离退役不远了,快把我拖走吧没救了没救了。 代码 cpp include define rin(i,a,b) 阅读全文
posted @ 2019-02-24 16:01 ErkkiErkko 阅读 (18) 评论 (0) 编辑

[BZOJ3812]主旋律:状压DP+容斥原理

摘要:分析 "Miskcoo orz" 令$f[S]$表示使得$S$这个点集强连通的方案数。 然后呢?~~不会了~~ 考虑到将一个有向图SCC缩点后,得到的新图是一个DAG,所以我们可以类比带标号DAG计数的解法来寻找这道题的突破口。 我们可以枚举哪些点所构成的SCC在缩点后入度为$0$,然后令$g[S] 阅读全文
posted @ 2019-02-21 07:37 ErkkiErkko 阅读 (33) 评论 (0) 编辑

[BZOJ2560]串珠子:状压DP+容斥原理

摘要:分析 为什么我去年6月做过这道题啊,估计当时抄的题解。 具体做法就是令$f[S]$表示保证连通点集$S$的方案数,$g[S]$表示不保证连通点集$S$的方案数。 容易想到: $$g[S]=\sum f[S T] \times g[T]$$ 这里的$T$是$S$去掉一个点后得到的集合的所有非空子集。 阅读全文
posted @ 2019-02-20 20:23 ErkkiErkko 阅读 (23) 评论 (0) 编辑

[BZOJ4011][HNOI2015]落忆枫音:拓扑排序+容斥原理

摘要:分析 又是一个有故事的题目背景。作为玩过原作的人,看题目背景都快看哭了ToT。强烈安利本境系列,话说SP time的新作要咕到什么时候啊。 好像扯远了嘛不管了。 一句话题意就是求一个DAG再加上一条有向边所构成的有向图的以$1$为根的外向树形图的个数。 考虑一个DAG的情况,答案显然是: $$\pr 阅读全文
posted @ 2019-02-20 14:29 ErkkiErkko 阅读 (20) 评论 (0) 编辑

有标号的DAG计数I~IV

摘要:有标号的DAG计数I 题目链接 COGS RIP "个人题库" 分析 感觉一下做不完,就四道题分开发博客(希望这不是个flag)。 问题很简单,就是求$n$个结点的带标号DAG的个数,要求时间复杂度为$O(n^2)$。 令$f[n]$为$n$个结点的带标号DAG的个数。 一个思路是枚举入度为$0$的 阅读全文
posted @ 2019-02-18 17:20 ErkkiErkko 阅读 (67) 评论 (0) 编辑

组合容斥计数技巧

摘要:小学奥数容斥 如果有: $$f(m)=\sum_{i=m}^{n}\binom{i}{m} \times g(i)$$ 那么: $$\sum_{i=1}^{n}g(i)=f(1) f(2)+f(3) f(4)+...=\sum_{i=1}^{n}( 1)^{i+1} \times f(i)$$ 适用 阅读全文
posted @ 2019-02-18 17:12 ErkkiErkko 阅读 (55) 评论 (0) 编辑

[BZOJ3456]城市规划:DP+NTT+多项式求逆

摘要:写在前面的话 昨天听吕老板讲课,数数题感觉十分的神仙。 于是,ErkkiErkko这个小蒟蒻也要去学数数题了。 分析 "Miskcoo orz" 带标号无向连通图计数。 $f(x)$表示$x$个点的带标号无向连通图的个数。弱化限制条件,令$g(x)$表示$x$个点的带标号无向图的个数(不要求连通)。 阅读全文
posted @ 2019-02-18 11:54 ErkkiErkko 阅读 (36) 评论 (0) 编辑

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

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

[51nod1383&1048]整数分解为2的幂:DP

摘要:算法一 分析 $f[x]=f[x 1]+f[x/2] \times [x \equiv 0 \mod 2],O(n)$ 代码 算法二 咕咕咕。 阅读全文
posted @ 2019-02-16 20:13 ErkkiErkko 阅读 (24) 评论 (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 阅读 (34) 评论 (0) 编辑

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

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

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

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

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

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

[BZOJ4695]最假女选手:segment tree beats!

摘要:分析 segment tree beats!模板题。 看了 "gxz的博客" 突然发现自己写的 和 两个标记没用诶。 代码 cpp include define rin(i,a,b) for(register int i=(a);i=(b); i) define trav(i,a) for(regi 阅读全文
posted @ 2019-02-11 22:16 ErkkiErkko 阅读 (55) 评论 (0) 编辑

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

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

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

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

[BZOJ2870]最长道路tree:点分治

摘要:算法一:点分治+线段树 分析 说是线段树,但是其实要写树状数组卡常。 代码 算法二:点分治 分析 边分治转点分治(不用学边分治了)(大雾)。 代码 阅读全文
posted @ 2019-01-25 18:43 ErkkiErkko 阅读 (72) 评论 (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 阅读 (66) 评论 (0) 编辑

THU-CCF WC2019两开花记

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

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

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

斯坦纳树总结

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

三元环计数问题

摘要:参考博客 "洛咕日报" 代码([HDU6184]Counting Stars) 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 阅读全文
posted @ 2019-01-18 22:12 ErkkiErkko 阅读 (57) 评论 (1) 编辑

最小树形图简单总结

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

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

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

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

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

[BZOJ2987]Earthquake:类欧几里得算法

摘要:分析 类欧的式子到底是谁推的啊怎么这么神仙啊orz! 简单说一下这道题,题目中的约束条件可以转化为: $$ y \leq \frac{c ax}{b} $$ 有负数怎么办啊?转化一下: $$ y \leq \frac{ax+c\%a}{b} $$ 唔姆,好像差不多。 枚举$x$,可以看成那个类欧的式 阅读全文
posted @ 2019-01-11 20:52 ErkkiErkko 阅读 (45) 评论 (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 阅读 (91) 评论 (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 阅读 (26) 评论 (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 阅读 (43) 评论 (0) 编辑

Min_25筛初级应用:求$[1,n]$内质数个数

摘要:代码 阅读全文
posted @ 2019-01-06 22:56 ErkkiErkko 阅读 (77) 评论 (0) 编辑

可并堆简单总结

摘要:左偏树 代码 阅读全文
posted @ 2019-01-04 22:00 ErkkiErkko 阅读 (32) 评论 (0) 编辑

Pollard's Rho算法简单总结

摘要:先贴一份代码在这。 最近几天实在是太忙了没时间更新了。 代码 cpp include include include include include include include include define rin(i,a,b) for(int i=(a);i=(b);i ) define tr 阅读全文
posted @ 2019-01-02 22:32 ErkkiErkko 阅读 (125) 评论 (0) 编辑
共 3 页: 上一页 1 2 3 下一页

统计