随笔分类 -  学习&&模板

摘要:Problem 给定一个大小为 \(n\) 的图,求所有生成树权值和的 \(k\) 次方和。 Sol 经典题。把边权设成 \(e^{wx}\) 即可。最终答案为 \([x^k]k!A(x)\),\(A(x)\) 为求行列式得到的多项式。复杂度 \(\mathcal O(n^3k^2)\)。 2020 阅读全文
posted @ 2021-05-04 19:48 AC-Evil 阅读(110) 评论(0) 推荐(0)
摘要:一类与对称相关的计数问题 栗子:给一个手镯,上面有 \(n\) 颗珠子,由线串成环。每种珠子可能有 红、黄、绿、蓝 四种颜色。问本质不同的手镯有多少种。对于两种手镯本质相同,当且仅当一种手镯能通过旋转和翻转变换与另一种手镯重合。 抽象化 对于这类问题,我们规范化定义:设集合 \(A\) 表示按照顺序 阅读全文
posted @ 2021-03-11 21:57 AC-Evil 阅读(239) 评论(0) 推荐(0)
摘要:Segment Tree Beats $Q1.$给定长度为$n$的序列$A$,支持以下操作:1、区间取$\min$;2、区间查询最大值;3、区间求和。 const int N = 1000005; const int inf = 1<<30; int n, m, a[N]; #define lc ( 阅读全文
posted @ 2020-10-27 16:36 AC-Evil 阅读(153) 评论(0) 推荐(0)
摘要:向量定义及运算 typedef double DB; const DB eps = 1e-12; int sgn(DB x) { return fabs(x) < eps ? 0 : (x > 0 ? 1 : -1); } // 精度判断 struct Point { // 点的定义,也可看作向量 阅读全文
posted @ 2020-07-29 11:07 AC-Evil 阅读(180) 评论(0) 推荐(0)
摘要:网络流 最大流 struct Edge { int u, v, c, f, nxt; } e[maxm << 1]; int G[maxn], edges; void init() { memset(G, -1, sizeof G); edges = 0; } void adde(int u, in 阅读全文
posted @ 2020-06-11 10:08 AC-Evil 阅读(119) 评论(0) 推荐(0)
摘要:并查集 有路径压缩和按秩合并两种。第二种稳定在$\mathcal O(\log n)$,可以可持久化。下面只放了带权并查集。 // 以NOI2001食物链为题 int fset(int x) { if (fa[x] == x) return x; int xx = fa[x]; fa[x] = fs 阅读全文
posted @ 2020-06-05 12:08 AC-Evil 阅读(178) 评论(0) 推荐(0)
摘要:KMP KMP别看它短小精悍,用处很大,能应用于很多方面呢。尤其fail (next)数组威力无穷。 void kmp(char *s, int *fail) { int j = fail[0] = -1; rep(i, 1, strlen(s)-1) { while (~j && s[i] != 阅读全文
posted @ 2020-06-01 21:02 AC-Evil 阅读(167) 评论(0) 推荐(0)
摘要:"题目:lxhgww的奇思妙想——长链剖分" 思路 长链剖分是根据链的长度为准则对一棵树进行剖分,和树剖类似。它有着特殊之处: $1$、从一个结点开始往上跳,经过的长链不超过$\text{O}(\sqrt n)$次。这个就没有树剖优秀了。 $2$、从一个结点向上跳$k$层,跳到的结点所在长链的长度$ 阅读全文
posted @ 2020-01-06 20:15 AC-Evil 阅读(208) 评论(0) 推荐(0)
摘要:0.总言 平衡树是一种十分有用的数据结构,它能支持以下操作: 1、插入一个数x 2、删除一个数x 3、查询一个数x(其排名,其前驱后继) 4、查询排名为k的数x 5、快速合并与分裂 6、维护区间修改、查询、翻转 7、维护其它信息 了解平衡树,先从最普通的$\text$开始。(注:下文的平衡树实现均用 阅读全文
posted @ 2019-10-28 20:35 AC-Evil 阅读(5409) 评论(0) 推荐(5)
摘要:前言 数学在$\text$中十分重要。其中大多都是数论。 什么是数论? \(研究整数的理论 ——zzq\) 本文包含所有侧边目录中呈现的内容。绝对丰富!!! 下面直奔主题。 整除、同余、裴蜀定理、辗转相除法、扩展欧几里得 群 $(G,\cdot)$表示$G$对定义在集合$G$上的运算$\cdot$构 阅读全文
posted @ 2019-10-19 21:29 AC-Evil 阅读(2374) 评论(23) 推荐(3)
摘要:```cpp include using namespace std; define ll long long const int maxn = 1e6 + 5; ll ans = 0; namespace SAM { struct Node { int ch[26], fa, val; int l 阅读全文
posted @ 2019-07-27 22:30 AC-Evil 阅读(136) 评论(1) 推荐(0)
摘要:前言 本文大概是作者对图论大部分内容的分析和总结吧,$\text{OI}$和语文能力有限,且部分说明和推导可能有错误和不足,希望能指出。 创作本文是为了提供彼此学习交流的机会,也算是作者在忙碌的中考后对此部分的复习和延伸吧。 本文顾名思义是探讨$\text{DFS}$在图论中的重要作用,可能心情比较 阅读全文
posted @ 2019-07-08 14:30 AC-Evil 阅读(1393) 评论(0) 推荐(2)
摘要:最近公共祖先就是求一颗有根树上,点对$(u,v)$的最近的公共祖先结点。例如如下的一个图中, $lca(3,7)=1$,$lca(3,4)=2$。 求任意两点的$LCA$,有离线和在线之分,总共主要有$4$种算法。 离线 这里指已知查询,且无先后顺序影响。 1、Tarjan 首先读入所有的询问对,然 阅读全文
posted @ 2019-03-01 20:02 AC-Evil 阅读(305) 评论(0) 推荐(0)
摘要:$Treap$实现 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define re register 6 #define rep(i, a, b) for (re int i = a; i <= b; ++i) 7 #define 阅读全文
posted @ 2019-02-06 15:08 AC-Evil 阅读(234) 评论(0) 推荐(0)
摘要:$Tarjan$大法好$qwq$。 阅读全文
posted @ 2019-02-03 19:30 AC-Evil 阅读(98) 评论(0) 推荐(0)
摘要:1 #include 2 3 using namespace std; 4 5 #define re register 6 #define rep(i, a, b) for (re int i = a; i = b; --i) 8 #define maxx(a, b) a = max(a, b); 9 #define minn(a, b) a = min(a, b); 10... 阅读全文
posted @ 2019-01-30 21:17 AC-Evil 阅读(178) 评论(0) 推荐(0)
摘要:下面的代码能过 洛谷P3808 【模板】AC自动机(简单版)。 阅读全文
posted @ 2018-10-29 22:33 AC-Evil 阅读(302) 评论(0) 推荐(0)