10 2020 档案

摘要:点双 一个点为割点当且仅当: 非根节点无返祖边,即 \(dfn_x \leq low_v\) 根节点有两个儿子以上 所以不用开栈 void Tarjan(int x){ dfn[x] = low[x] = ++ tim; int sz = 0; for(int i = head[x]; i; i = 阅读全文
posted @ 2020-10-30 19:26 When_C 阅读(177) 评论(1) 推荐(1)
摘要:重复旋律五:$S$中本质不同的子串数量:\(\sum_{i = 1}^{sz}{len_i - len_{f_i}}\) 重复旋律六:如果节点$u$不包含子串$S[1..i]\(,也就是不存在母串的某个前缀,那么满足\)|endpos(u)| = ∑|endpos(son(u))|$,其中$son( 阅读全文
posted @ 2020-10-27 21:56 When_C 阅读(138) 评论(1) 推荐(1)
摘要:####1. 回文自动机$PAM$ #####(B站上的讲解视频)[https://www.bilibili.com/video/av25326779?from=search&seid=16439865067541274096] #####(代码看这篇)[https://www.luogu.com. 阅读全文
posted @ 2020-10-27 14:50 When_C 阅读(99) 评论(0) 推荐(0)
摘要:题意 有一张由黑白点构成的网格图,给出一些黑点的坐标,求上下左右都有黑点(不必相邻)的白点数目与原来黑点数目之和。 一个说明 为什么原题面中永不终止的情况是不可能的? 对于每一个将会被染成黑色的白点,它的上方,下方,左边,右边(不必相邻)一定是都是有黑点的,而一个既不在所属列的两端,又不在所属行的两 阅读全文
posted @ 2020-10-26 12:57 When_C 阅读(113) 评论(0) 推荐(0)
摘要:题意 给出一个序列与若干个区间,求每一个区间内出现次数大于等于2的数的个数 算法 树状数组离线(连主席树都敢卡……) 思路 求出现次数的题,基本都是这个套路 e.g.Luogu1972 HH的项链 考虑对于区间$l-r$,每一种颜色只有倒数第二个对答案有影响(因为这是该颜色最晚可以被计入答案的位置, 阅读全文
posted @ 2020-10-24 16:00 When_C 阅读(78) 评论(0) 推荐(1)
摘要:细节狂魔题 **题意:**维护一个$01$序列,支持区间修改(全部变$0$或$1$),区间取反,区间求和,区间求最长1序列 做法 显然应该用线段树维护。 线段树需要维护:每段区间内$0$的数量,$1$的数量,最长$1$序列长度,最长$0$序列长度,从左端点开始的0/1序列长度,从右端点开始的$0/1 阅读全文
posted @ 2020-10-23 11:28 When_C 阅读(129) 评论(0) 推荐(1)
摘要:细节题 本文会把作者踩到的坑指出,以便您调试 思路 贪心+$DFS$染色,算法其实很好想,考虑哪些$*$点是必须被替换的: 通过观察,我们发现,一个$$点要被替换,当且仅当有一个包含它的$2\times 2$的矩阵中除它之外全是$.\(点(当我们已经将其他需要替换的\)$点替换掉时) **证明:** 阅读全文
posted @ 2020-10-22 09:34 When_C 阅读(107) 评论(0) 推荐(1)
摘要:题意 给一个长为 \(n\) 的序列,以及交换次数 \(k\),每次可以在原先的序列 中任意交换两个数 交换后找一个最大子串和,输出其可能的最大值。 $1 \leq n \leq 200; 1 \leq k \leq 10$。 算法 暴力枚举+贪心 思路(心路历程) 拿到题第一下还想这最大字段和DP 阅读全文
posted @ 2020-10-21 22:25 When_C 阅读(121) 评论(0) 推荐(1)
摘要:这里给出一种构造方法及其证明 **方法:**考虑从k开始依次构造差值,即第一个与第二个相差$k$,第二个与第三个相差$k-1$。首先假设第一个数为$1$,因此我们要把$1+k$放在第二个,那么第三个数应该为$1+k-(k - 1) = 2$,第四个为$2+(k - 3) = k - 1$,第五个为$ 阅读全文
posted @ 2020-10-21 20:50 When_C 阅读(95) 评论(0) 推荐(1)
摘要:贪心算法两句话 第一句话: 能往左倒就往左倒。 如同数学中“我们不妨设”一样,相信很好理解。这里只对第二句话稍作解释: 不能往左倒的尽量往右倒 这样为什么是对的呢? 我们可以分类讨论一下: 假设当前已经处理到第$i$个,且它不能往左倒,$h_i$表示树高,$x_i$表示位置。 若$x_{i + 1} 阅读全文
posted @ 2020-10-21 19:58 When_C 阅读(98) 评论(1) 推荐(1)
摘要:引入 RMQ问题: 给定一个长度为$n$的序列$A_{1 - n}$,有$q$次询问,每次询问给出$x,y$,回答$A_$中的最大值(也可以是最小值,此处以最大值为例) 通常$n,q \leq 100000$。 利用倍增解决这类问题的算法叫做ST表。 ST表 对于序列$A_{1-n}$,我们构造一个 阅读全文
posted @ 2020-10-20 20:40 When_C 阅读(175) 评论(1) 推荐(1)
摘要:fpjo Iris WRP Rothen Illusoins Martin Caojia hyxss CXQ 阅读全文
posted @ 2020-10-20 13:08 When_C 阅读(128) 评论(0) 推荐(1)
摘要:####1. 主席树: #####https://blog.csdn.net/ModestCoder_/article/details/90107874#t0 ####2. Splay: #####https://www.luogu.com.cn/blog/user19027/solution-p3 阅读全文
posted @ 2020-10-15 20:57 When_C 阅读(88) 评论(0) 推荐(1)
摘要:###题意 https://www.luogu.com.cn/problem/P4052 ###算法 AC自动机上的套路DP ###思路 正面处理困难,于是考虑容斥,求不合法的方案数。考虑使用AC自动机,则原问题转化为:求使这$m$个字符串都匹配不上的字符串的个数。所以,匹配过程中经过的点,其$fa 阅读全文
posted @ 2020-10-13 15:02 When_C 阅读(154) 评论(3) 推荐(0)
摘要:####KMP https://www.luogu.com.cn/paste/pe84glyj ####AC自动机 https://www.luogu.com.cn/paste/xelpee2u (持续更新中……) 阅读全文
posted @ 2020-10-12 18:34 When_C 阅读(58) 评论(1) 推荐(0)
摘要:###题意 给$n$个点,要求构造一张简单无向图,其中每个点入度都为$3$,若可以构造则输出边数与边(顺序随意),无法构造则输出$Impossible$ ###算法 推理$qwq$ ###思路 首先,整张图的度数和应为$n\times3$,而每连一条边度数和增加$2$,故$n$为奇数肯定不合法。另外 阅读全文
posted @ 2020-10-10 16:58 When_C 阅读(209) 评论(0) 推荐(0)
摘要:###题意 给出一张n (\(n\leq1000\)) 点m (\(m\leq2000\)) 边的有向图,要求判断负环,并升序输出可以到负环的点 (多组数据 \(T\leq125\)); ###算法 建反图 + SPFA判负环 + dfs染色 ###思路 当建完反图后,负环是不变的,原图上所有能到负 阅读全文
posted @ 2020-10-10 08:18 When_C 阅读(81) 评论(0) 推荐(0)
摘要:###题意 平面上有n(\(n\leq1000\))个点,你的任务是让所有n个点联通。为此,你可以新建一些边,费用等于两个端点的欧几里得距离平方。另外还有q(\(q\leq8\))个套餐可以购买,如果你购买了第i个套餐,该套餐中的所有结点将变得相互连接。第i个套餐的花费为$C_i$。 ###算法 最 阅读全文
posted @ 2020-10-09 11:56 When_C 阅读(90) 评论(0) 推荐(0)
摘要:这里只写Kruskal版本(太蒟了qwq) ###大致思路 首先求出最小生成树,我们枚举每条不在最小生成树上的边,并把这条边放到最小生成树上面,然后就一定会形成环,那么我们在这条环路中取出一条最长的路(除了新加入的那一条边)。最终我们得到的权值就是次小生成树的权值。 ###代码实现 #include 阅读全文
posted @ 2020-10-09 10:57 When_C 阅读(99) 评论(0) 推荐(0)