摘要:
代码如下 cpp include using namespace std; typedef long long LL; const LL mod = 998244353, g = 3, ig = 332748118; inline LL fpow(LL a, LL b) { LL ret = 1 % 阅读全文
摘要:
线性基主要用于解决子集异或问题。 cpp include using namespace std; typedef long long LL; struct linear_basis { vector s; int n, zero; linear_basis(int _n) { n = _n; s. 阅读全文
摘要:
题目大意:给定一个 N 个点,M 条边的无向图,边有两个边权 a, b,求从 1 号节点到 N 号节点路径的两个权值和的最大值最小是多少。 题解: 对于有两个属性的结构的最优化问题,可以考虑先按照其中一个分量进行排序。接着从小到大枚举这个有序的分量,计算以当前枚举到的值为这一分量的最大值时,全局的最 阅读全文
摘要:
$$ PA=E, PE=P $$ 按照定义,P 即为 A 的逆矩阵。矩阵乘法可以看作是对右边矩阵的一个线性变换,即:A 经过 P 的线性变换变成了 E,E 经过同样的线性变换变成了 P。因此,只需要在高斯消元 A 矩阵,将 A 变成单位矩阵的同时,维护一个单位矩阵,做与 A 完全相同的线性变换即可得 阅读全文
摘要:
题目大意:给定一个二元组集合A{}, 一个三元组集合B{}, 定义 C 为 A 和 B 在 {b = e} 上的连接,求 C 集合中凸点的个数,即:最值点的个数。 题解: C 为一个三元组集合,求凸点的个数问题等价于三维偏序问题,去重之后可以直接计算。 不过,发现若直接暴力进行连接运算,最坏情况下会 阅读全文
摘要:
代码如下 cpp include using namespace std; typedef long long LL; const int mod = 51061; struct node { node l, r, p; int rev, val; LL sum, add, mul, sz; nod 阅读全文