摘要: 云剪贴板戳我 #include <bits/stdc++.h> #define fuck_you int #define shit double #define LC_txdy main #define zhy_is_god return #define wrp for #define tiger 阅读全文
posted @ 2020-11-02 21:23 When_C 阅读(163) 评论(5) 推荐(0) 编辑
摘要: 点双 一个点为割点当且仅当: 非根节点无返祖边,即 \(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 阅读(155) 评论(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 阅读(128) 评论(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 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 题意 有一张由黑白点构成的网格图,给出一些黑点的坐标,求上下左右都有黑点(不必相邻)的白点数目与原来黑点数目之和。 一个说明 为什么原题面中永不终止的情况是不可能的? 对于每一个将会被染成黑色的白点,它的上方,下方,左边,右边(不必相邻)一定是都是有黑点的,而一个既不在所属列的两端,又不在所属行的两 阅读全文
posted @ 2020-10-26 12:57 When_C 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一个序列与若干个区间,求每一个区间内出现次数大于等于2的数的个数 算法 树状数组离线(连主席树都敢卡……) 思路 求出现次数的题,基本都是这个套路 e.g.Luogu1972 HH的项链 考虑对于区间$l-r$,每一种颜色只有倒数第二个对答案有影响(因为这是该颜色最晚可以被计入答案的位置, 阅读全文
posted @ 2020-10-24 16:00 When_C 阅读(75) 评论(0) 推荐(1) 编辑
摘要: 细节狂魔题 **题意:**维护一个$01$序列,支持区间修改(全部变$0$或$1$),区间取反,区间求和,区间求最长1序列 做法 显然应该用线段树维护。 线段树需要维护:每段区间内$0$的数量,$1$的数量,最长$1$序列长度,最长$0$序列长度,从左端点开始的0/1序列长度,从右端点开始的$0/1 阅读全文
posted @ 2020-10-23 11:28 When_C 阅读(104) 评论(0) 推荐(1) 编辑
摘要: 细节题 本文会把作者踩到的坑指出,以便您调试 思路 贪心+$DFS$染色,算法其实很好想,考虑哪些$*$点是必须被替换的: 通过观察,我们发现,一个$$点要被替换,当且仅当有一个包含它的$2\times 2$的矩阵中除它之外全是$.\(点(当我们已经将其他需要替换的\)$点替换掉时) **证明:** 阅读全文
posted @ 2020-10-22 09:34 When_C 阅读(96) 评论(0) 推荐(1) 编辑
摘要: 题意 给一个长为 \(n\) 的序列,以及交换次数 \(k\),每次可以在原先的序列 中任意交换两个数 交换后找一个最大子串和,输出其可能的最大值。 $1 \leq n \leq 200; 1 \leq k \leq 10$。 算法 暴力枚举+贪心 思路(心路历程) 拿到题第一下还想这最大字段和DP 阅读全文
posted @ 2020-10-21 22:25 When_C 阅读(108) 评论(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 阅读(89) 评论(0) 推荐(1) 编辑