摘要: 知识点梳理 Day1 6.7 可能是图论专题吧 Tarjan求强连通分量 dfn[]表示dfs序的标号 low[]表示能连到的最小的dfn标号的点的标号 sta[],top是栈 instack[]标号是表示这个点在栈中,还是已经遍历完被弹栈了 col[]记录每个点所在的颜色 1.Tarjan缩点后是 阅读全文
posted @ 2019-06-14 08:13 sigongzi 阅读(2125) 评论(13) 推荐(4) 编辑
摘要: 做了那么久的atcoder觉得自己的题解发的很乱 给有想和我一起交流atcoder题目(或者指出我做法的很菜)(或者指责我为什么整场比赛只会抄题解)的同学一个索引的机会??? 于是写了个爬虫爬了下 AtCoder整理 AGC "【AtCoder】AGC034" "【AtCoder】AGC033" " 阅读全文
posted @ 2019-05-23 09:35 sigongzi 阅读(2319) 评论(2) 推荐(2) 编辑
摘要: K题想出来,VP的时候没写完,太屑了 我们考虑把上下为空或左右为空的地方作为一个管子,剩下的地方作为块 我们从一个大小大于1的块开始dfs,这必然构成了一个树结构,我们给每个非根节点分配一个管子,管子的方向决定了这个块是横着填满还是竖着填满,为什么大小为1的不行,因为大小为1的块(也就是一个类似拐点 阅读全文
posted @ 2021-02-04 09:41 sigongzi 阅读(488) 评论(0) 推荐(1) 编辑
摘要: 【牛客网】15253 白兔的字符串 比较两个字符串是否循环同构从比较两个最小表示是否相同开始 我们把T转成循环同构,这不影响答案 然后我们要假定T真的是$S$长度为$len(T)\(区间的一个最小表示,对于这个区间设为\)[l,r]$,我们设另一个在$S$上的指针为$p$,如果$p$匹配到了区间的末 阅读全文
posted @ 2021-02-02 12:28 sigongzi 阅读(260) 评论(0) 推荐(1) 编辑
摘要: 2020ICPC·小米 网络选拔赛第一场(2020.10.25) 队伍名称:代码养生学 A.Intelligent Waregouse 有$n$个数,从中选出一些数,要求这些数里每一对一个是另一个的倍数 $1\leq n\leq 2\times10^{5},1\leq a_ \leq 10^{7}$ 阅读全文
posted @ 2020-10-27 18:57 sigongzi 阅读(637) 评论(2) 推荐(2) 编辑
摘要: ARC105 来了,老年选手感到自己水平有一点差劲 A - Fourtune Cookies 题意:给四块饼干问能不能分成总和相同的两份 二进制枚举就行 #include <bits/stdc++.h> #define fi first #define se second //#define ivo 阅读全文
posted @ 2020-10-14 22:53 sigongzi 阅读(622) 评论(1) 推荐(0) 编辑
摘要: 我LOJ打不开了我会乱说? 当年愚蠢到用线段树建图的题…… 我们首先需要一棵后缀树,根据“正串后缀自动机的fail树是反串的后缀树”,我们反着建一个后缀自动机,并构建正串后缀树 我们可以把要插入的A串或者B串插入到他们在后缀树对应的点,或者在一条边的中间 把A点拆成两个点,中间的边权是A串的长度 找 阅读全文
posted @ 2020-07-13 11:47 sigongzi 阅读(472) 评论(0) 推荐(3) 编辑
摘要: 题解 把S串建一个后缀自动机 用一个可持久化权值线段树维护每个节点的right集合是哪些节点 求本质不同的子串我们就是要求T串中以每个点为结束点的串有多少在$S[l..r]$中出现过 首先我们需要对于T串每个点本身和自己的匹配长度,可以建一个后缀自动机来完成 然后把T串放在S串上跑匹配,匹配到下一个 阅读全文
posted @ 2019-07-10 20:20 sigongzi 阅读(536) 评论(0) 推荐(0) 编辑
摘要: 我居然到了国赛之前才学习怎么做广义后缀自动机 这个题目……意思是……有20个叶子,肯定一条路径都是任意一个叶子为根,一个从某个点往祖先走的路径 这样的话我们可以按照dfs序,从每个节点的父亲那里的后缀自动机节点再加一个节点 这样只要对于每个后缀自动机的节点统计一下节点长度减去父亲节点长度就好了 cp 阅读全文
posted @ 2019-07-09 20:18 sigongzi 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 题解 看了一遍题解(以及代码)但是没写代码…… 后来做梦的时候忽然梦到了这道题……意识到我需要补一下…… 这道题就是,对于每种颜色,把没有染成这种颜色的点标成黑点,然后计算每个联通块的平方 然后每个点维护,虚儿子黑点的siz,虚儿子的siz的平方,还有splay上的siz和 为了保证最高点是白点,我 阅读全文
posted @ 2019-07-07 19:53 sigongzi 阅读(601) 评论(1) 推荐(0) 编辑
摘要: "原题链接" 题目大意是有N个数,分成K段,每一段的花费是这个数里相同的数的数对个数,要求花费最小 如果只是区间里相同数对个数的话,莫队就够了 而这里是!边单调性优化边莫队(只是类似莫队)!而移动的次数和分治的复杂度是一样的! 这个时候就不能用单调栈+二分了,得用分治 分治的方法就是$Solve(l 阅读全文
posted @ 2019-07-05 20:36 sigongzi 阅读(577) 评论(0) 推荐(0) 编辑
摘要: "【牛客网】Finding Hotel" 忘记K远点对的剪枝的我有点自闭 事实上我们只要先建一棵KD树出来,维护一下所在的矩形,和子树里的最小值 每次查询的时候如果最小值比查询的值要大的话就退出 当前的答案构成了一个圆,若圆和矩形没有交就退出(不一定很严格,可以认为是以圆心为中心向上下左右延伸半径长 阅读全文
posted @ 2019-06-28 11:47 sigongzi 阅读(288) 评论(0) 推荐(0) 编辑
摘要: "【牛客网】Longest Common Subsequence" 发现只有d数组最格路 于是我们把前三个数组中相同的数记成一个三维坐标,同一个数坐标不会超过8个 从前往后枚举d,每次最多只会更新不超过8个点 而每个点更新就是找这个点三维偏序都小于它的最大的一个值+1来更新它 用KD树来维护,这个点 阅读全文
posted @ 2019-06-28 10:20 sigongzi 阅读(343) 评论(0) 推荐(0) 编辑
摘要: "【ZOJ】4012 Your Bridge is under Attack" 平面上随机n个点,然后给出m条直线,问直线上有几个点 $n,m \leq 10^{5}$ 由于共线的点不会太多,于是我们可以建KD树出来直接查询,这条直线和某个矩形不相交则不搜索这个子树 cpp include defi 阅读全文
posted @ 2019-06-27 19:11 sigongzi 阅读(419) 评论(0) 推荐(0) 编辑
摘要: "LOJ 2210. 「HNOI2014」江南乐" 感觉是要推sg函数 发现$\lfloor \frac{N}{i}\rfloor$只有$O(\sqrt{N})$种取值 考虑把这些取值都拿出来,能取到这个值的$i$是一个区间$[l,r]$ 如果$r l + 1 = 1$,那么直接算这个数的答案即可( 阅读全文
posted @ 2019-06-27 16:30 sigongzi 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 可能是一篇(抄来的)min25学习笔记 一个要求很多的积性函数 我们考虑有一个积性函数,这个函数满足可以快速计算质数处的值 且质数可以写成一个多项式的形式……而且这个多项式如果强行套在合数上,满足积性,~~我也不知道有没有除了$x^{k}$别的多项式惹~~ 假如$F(x) = x^{k}$吧 我们想 阅读全文
posted @ 2019-06-26 20:19 sigongzi 阅读(737) 评论(0) 推荐(0) 编辑
摘要: " 3020. 「CQOI2017」小 Q 的表格" 这个的话求出来$g = gcd(a,b)$ 会修改所有gcd为g的位置 我们要求$(g,g)$这个位置的数一定是$g^{2}$的倍数 之后的$gcd(a,b) == g$的位置也会满足 $\frac{f(g,g)}{g^{2}} = \frac{ 阅读全文
posted @ 2019-06-24 18:56 sigongzi 阅读(295) 评论(0) 推荐(0) 编辑
摘要: "【51nod】1602 矩阵方程的解" 这个行向量显然就是莫比乌斯函数啦,好蠢的隐藏方法= = 然后我们尝试二分,二分的话要求一个这个东西 $H(n) = \sum_{i = 1}^{n} \mu(i) == d$ 当然$\mu(x)$由于一些很好的性质,这个东西可以用分类讨论做出来 众所周知,求 阅读全文
posted @ 2019-06-24 10:50 sigongzi 阅读(451) 评论(0) 推荐(0) 编辑
摘要: "【51nod】1634 刚体图" 给一个左边n个点右边m个点二分图求合法的连通图个数,每条边选了之后会带来价值乘2的贡献 类似城市规划那道题的计数 设$g[i][j]$为左边$i$个点,右边$j$个点的图有多少个(就是边随便连) $f[i][j]$为左边$i$个点右边$j$个点的连通图有多少个 然 阅读全文
posted @ 2019-06-24 08:49 sigongzi 阅读(465) 评论(0) 推荐(0) 编辑
摘要: "【51nod】1407 与与与与" 设$f(x)$ 为$A_{i} \& x == x$的$A_{i}$的个数 设$g(x)$为$x$里1的个数 $\sum_{i = 0}^{2^{20}} ( 1)^{g(x)}2^{f(x)}$ $f(x)$就是按位取反之后的一个FMT卷积,把判断条件改成这一 阅读全文
posted @ 2019-06-23 18:18 sigongzi 阅读(480) 评论(0) 推荐(0) 编辑
摘要: "【51nod】1776 路径计数" 我们先把前两种数给排好,排好之后会有$a + b + 1$个空隙可以填数,我们计算有$k$个空隙两端都是相同字母的方案数 可以用枚举把第二种数分成几段插进去来算,设这个方案数为$f[k]$ 然后对于一种有$k$个空隙的方案数,枚举剩下的$a + b + 1 k$ 阅读全文
posted @ 2019-06-23 17:58 sigongzi 阅读(362) 评论(0) 推荐(0) 编辑
摘要: "diverta 2019 Programming Contest 2" A Ball Distribution 特判一下一个人的,否则是$N (K 1) 1$ B Picking Up 枚举p,q(就是枚举一个点对计算p和q),判哪一种情况最优即可 F Diverta City 水平不行,想不到 阅读全文
posted @ 2019-06-22 13:21 sigongzi 阅读(867) 评论(2) 推荐(0) 编辑