随笔分类 - 模板
蛤?乖乖站好!
摘要:有 $n$ 个变量和 $m$ 条限制,每条限制是 $x_1$ 为 $True/False$ 或 $x_2$ 为 $True/False$,求构造一组可行方案,或者判断无解 sol: 把每个命题拆成原命题和逆否命题,这两个一定等价,要同时满足 然后对于每个限制 $a,b$ , $a$ 向 $否b$ 连
阅读全文
摘要:求不相交集合并卷积 sol: 集合并卷积?看我 FWT! 交一发,10 以上的全 T 了 然后经过参考别人代码认真比对后发现我代码里有这么一句话: 把它改成 就过了... 有理有据地分析一波,上面那种写法会访问 $O(2^n)$ 次不连续的空间,下面那种写法只有 $O(n)$ 次 写出来主要还是提醒
阅读全文
摘要:定义一个图的价值为每个点度数 $k$ 次方之和,求所有 $n$ 个点的简单图价值之和,膜 998244353 $n \leq 10^9, k \leq 2 \times 10^5$ sol: 发现每个点是本质相同的,我们考虑枚举一个点的贡献,最后乘以 $n$ 我们可以枚举它连出去多少条边,这个点连出
阅读全文
摘要:树上每个点有颜色,每个颜色有一个关于出现次数的权值,定义一条路径的权值为 $\sum$ 路径上每个点权值 $\times$ 它的颜色在路径上出现次数的权值 给 $q$ 次操作,每次修改一个点的颜色或者询问一条路径的权值 $n \leq 100000$ sol: bzoj 200s 极度酸爽 只被我卡
阅读全文
摘要:$n$ 个点的树,数一条链上有多少不同的点 sol: 树上莫队 首先,王室联邦分块 记 $(cu,cv)$ 为当前的链,$(qu,qv)$ 为当前询问的链,维护一个 $vis$ 数组表示“当前点在/不在当前链上”,每次暴力从 $cu,qu$ 爬到他们的 lca,从 $cv,qv$ 爬到他们的 lca
阅读全文
摘要:记 $min\{S\}$ 为集合 $S$ 中最小值,$max\{S\}$ 为集合 $S$ 中最大值 则有 $max\{S\}=\sum\limits_{T \subseteq S,T \neq \emptyset}(-1)^{|T|-1}min\{T\}$ 这个东西可以用来求“全都出现的期望时间”
阅读全文
摘要:高斯消元,就是 $O(n^3)$ 解方程组 bzoj3270 博物馆 一个无向图,两个人一个在 A 一个在 B,这两个人开始随机走,求这两个人在每个点相遇的概率(在边上不会相遇),每个点有一个自环,每次有 $P_i$ 的概率走自环,剩下 $1 - P_i$ 的概率等概率选一个相邻点走过去 $n \l
阅读全文
摘要:概念就不说了吧,网上教程满天飞 学了半天才知道,kd 树实质上只干了两件事情: 1.快速定位一个点 / 矩形 2.有理有据地优化暴力 第一点大概是可以来做二维平面上给点/矩形打标记的问题 第二点大概是平面最远点对? bzoj1941 Hide and Seek 求每个点除自己以外的最近点和最远点 s
阅读全文
摘要:对一个常系数线性递推式$$f_n = \sum_{i=1}^k a_i \times f_{n-i}$$ 矩阵快速幂需要 $O(k^3logn)$ ? 这篇文章将教您在至多为 $O(k^2logn + k^4)$ 时间内搞这个式子 有什么用嘛,可能对我这种省选注定退役的人没啥用,但对于 NOI 及以
阅读全文
摘要:首先 FFT 没啥可说的,背诵全文 #include<bits/stdc++.h> #define LL long long using namespace std; const int maxn = 4000100,mod = 998244353,iG = 332748118,G = 3; int
阅读全文
摘要:Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $f * g$ 常用: $\mu * 1 = \epsilon$ $\phi * 1 = id$ $\
阅读全文
摘要:来介绍一些基本操作 首先,介绍一下 Suffix Automaton 后缀自动机大概由两部分组成—— DAWG 和 Parent Tree 1.DAWG DAWG 的中文名字叫做“单词的有向无环图” 它由一个初始节点 init ,若干条转移边,若干个节点组成 DAWG 表示的是状态的转移关系,我们可
阅读全文
摘要:T1 decode 解哈夫曼编码 sol: 因为哈夫曼编码的性质,我们直接暴力就可以了 #include<bits/stdc++.h> #define LL long long using namespace std; inline int read() { int x = 0,f = 1;char
阅读全文
摘要:给一个 $n$ 个点的带权树,每次修改一个点的权值,或者询问到 $x$ 距离不超过 $k$ 的点的权值和,强制在线 sol: 套路题,首先搞出一个点分树,每个重心,以到重心的距离为下标,点权为权值建两棵线段树,一个用来统计答案,一个用来消除对父节点的影响 每次修改和讯询问都是暴力爬树高,在经过的每棵
阅读全文
摘要:在某咕上打了一晚上的模板 感觉还好。。。 #include<bits/stdc++.h> #define LL long long using namespace std; inline int read() { int x = 0,f = 1;char ch = getchar(); for(;!
阅读全文
摘要:这是一道模板题。 给定一棵 nnn 个节点的树,初始时该树的根为 111 号节点,每个节点有一个给定的权值。下面依次进行 mmm 个操作,操作分为如下五种类型: 换根:将一个指定的节点设置为树的新根。 修改路径权值:给定两个节点,将这两个节点间路径上的所有节点权值(含这两个节点)增加一个给定的值。
阅读全文
摘要:圆方树是Tarjan发明,ImmortalCO引入CNOI界的一种处理无向图/仙人掌的利器 具体地,圆方树可以简便地把一个无向图变成树/仙人掌 做法就是Tarjan搜点双的时候,对于每个点双我们建一个方点向这个点双里的点连边,割点向相邻的方点连边 然后就有很多很神仙的性质/应用 但对我来说就是一种优
阅读全文
摘要:限制这么多 肯定是网络流 考虑连边 首先我们计算出每行最多放的棋子数$sx[i]$,每列最多放的棋子数$sy[i]$ 首先由源点向第$i$行连流量为$sx[i]$费用为$0$的边,第$i$列向汇点连流量为$sy[i]$费用为$0$的边,这个是套路 第一个限制很好解决,采用正难则反思想,考虑能“拆下”
阅读全文
摘要:黑科技向 1.分层图最短路 这种题呢,一般是有一个这样的模型: 有一个分层图,在层中间连的边走需要$x$的花费,跨层需要$y$的花费,求$1$到$n$的最短路 我们一般会用一个$dis[i][j]$来表示现在是在第$i$个点,第$j$层的最短路 例题:bzoj2662 有一个$n$个点$m$条边的无
阅读全文
摘要:说是教程其实也就我自己看怕我这个shabi又双叒叕忘了后缀自动机然后再学一遍 1.后缀自动机就是能识别字符串S所有后缀的自动机 根据定义知道 它也可以识别S的所有子串 2.Right集合 是指子串str在母串S中出现的结束位置的集合 对于一个Right集合,适合它的子串长度取值区间为$[minlen
阅读全文

浙公网安备 33010602011771号