随笔分类 - 洛谷
洛谷中出现的知识总结、题解等
摘要:分层图最短路 P4568 [JLOI2011]飞行路线 一、分层图概念 分层图最短路 :在可以进行分层图的图上解决最短路问题 分层图:理解为有 多个平行的图 模型:在一个正常的图上可以进行 次决策,对于每次决策,不影响图的结构,只影响目前的 状态 或 代价。一般将 决策前的状态 和 决策后的
阅读全文
摘要:## 【模板】 自动机(二次加强版) 一、题目描述 给你一个文本串 和 个模式串 ,请你分别求出每个模式串 在 中出现的次数。 二、对加强版进行改造 因为是什么二次加强版,所以大家先去做一下 加强版 吧,做法差不多
阅读全文
摘要:## 【模板】自动机(加强版) 作为模板,这道题的解法也是十分的经典。 我们先来分析一下题目:输入和模板一样 对比简单版 【模板】自动机(简单版) 给定 个模式串 和一个文本串 ,求有多少个不同的模式串在文本串里出现
阅读全文
摘要:## 【模板】 自动机(简单版) AC自动机详细讲解 自动机真是个好东西!之前学被指针搞晕了,所以咕了许久都不敢开自动机,近期学完之后,发现自动机并不是很难,特别是对于,个人感觉自动机比要好理解一些,可
阅读全文
摘要:#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <cmath> using namespace std; typedef long long LL; const int N
阅读全文
摘要:裴蜀定理(贝祖定理) 定理 对任何整数 和 ,关于未知数 和 的线性丢番图方程(称为裴蜀等式): 有整数解时当且仅当 是及的最大公约数的倍数。 裴蜀等式有解时必然有无穷多个整数解,每组解$
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; const int N = 2000010; typedef long long LL; LL s[N]; int main() { LL n; cin >> n; //预处理前缀和 for (i
阅读全文
摘要:题目传送门 一、暴力法 个测试点,全部 #include <bits/stdc++.h> using namespace std; const int N = 200010; const int INF = 0x3f3f3f3f; int res = -INF; int a[N
阅读全文
摘要:题目传送门I 题目传送门II 一、差分约束 这题很有意思,看了下题,感觉得用前缀和,然后似乎就是: 我们用表示前个月的总利润 如果从第月到第月的利润是(可正可负) 可以得到:(可以理解为前缀和差值) 相当
阅读全文
摘要:题目传送门 一、图的存储方式总结 存图可以三种办法: (1)点到点:邻接矩阵 (2)点+点的出边:邻接表 (3)只保存边:结构体 适合场景: 邻接矩阵 (1)要判断任意两顶点是否有边无边就很容易了; (2)要知道某个顶点的度,其实就是这个顶点在邻接矩阵中第行或(第列
阅读全文
摘要:题目传送门 实现代码 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10, M = 2 * N; int dfn[N], low[N]; int n, m; int timestamp, root; int stk
阅读全文
摘要:题目传送门 知识点 无向图边双连通分量模板 的自定义排序 #include <bits/stdc++.h> using namespace std; const int N = 5010, M = 20010; typedef pair<int, int> PII; int
阅读全文
摘要:## [ 【模板】最近公共祖先()](https://www.luogu.com.cn/problem/P3379) #### 常见的四种求法  一、题目描述 二、解题思路 从题目上来看,知道需要递推求公式,但,我们知道简单递推肯定要挂掉。 所以想到需要一个的算法,递推求式子,线性的还不行,联想到矩阵快速幂。 $$\large \beginf_ & f_ & f
阅读全文
摘要: 【模板】矩阵快速幂 题目传送门 一、矩阵乘法介绍 有两个矩阵:和(矩阵实际上就是二维数组) 矩阵和矩阵可以做乘法运算必须满足矩阵的列的数量等于矩阵的行的数量 运算规则:的每一行中的数字对应乘以的每一列的数字把结果相加起来 二、矩阵乘法模
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; int main() { int m, t, s; cin >> m >> t >> s; if(t==0) { printf("0"); return 0; } int x = ceil(1.0
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; int main() { int a, b; cin >> a >> b; int c = 19; int d = a * 10 + b; int e = d / c; cout << e <<
阅读全文
摘要:题目传送门 边形对角线个数 公式: 边形对角线交点个数公式 : 理由: 首先由于不会有三条对角线交于一点,所以过某一个交点有且只能有条对角线。 而这两条对角线实质上是确定了个顶点(也可以看做是一个四边形的两条对角线交于一点,求四边形
阅读全文