模板
文章平均质量分 64
本居小鈴
无尽深渊中,唯有你与我共行。
展开
-
【日志】扩展中国剩余定理
扩展中国剩余定理(P4777 【模板】扩展中国剩余定理)原题传送门中国剩余定理被划分为useless算法了不过中国剩余定理能做的,扩展中国剩余定理(应该)都能做到过程考虑两个同余方程。x≡a(modb)x≡c(modd)x \equiv a \pmod b\\x \equiv c \pmod dx≡a(modb)x≡c(modd)从模的定义上,可以将第一个式子转化为:x=bt+ax = bt + ax=bt+a之后再将方程带入二式,得:bt+a≡c(modd)bt + a \原创 2022-03-25 00:10:37 · 1355 阅读 · 0 评论 -
【补题】P1082 [NOIP2012 提高组] 同余方程
P1082 [NOIP2012 提高组] 同余方程题目传送门:P1082 NOIP2012 提高组 同余方程。思路是一道使用扩展欧几里得算法的模板题。扩展欧几里得算法可以求出两个整数xxx和yyy,使得:ax+by=gcd(a,b)ax+by=\gcd(a,b)ax+by=gcd(a,b)题目要求的式子则为:ax≡1(modb)ax \equiv 1 \pmod bax≡1(modb)(实际上是求a在模b意义下的逆)。所以,可以直接使用Exgcd求出解。代码一种可行的c++代原创 2022-03-18 00:00:10 · 1341 阅读 · 0 评论 -
【补题】UVA11992 Fast Matrix Operations(使用类包装的线段树)
UVA11992 Fast Matrix Operations题目传送门题目大意需要对一个初始全为0的矩阵进行操作。给定两个点,并执行下面三个操作:对给定两个点中间的范围加上val。将给定两个点中间的范围全部赋值为val。询问给定两个点中间的范围中所有元素的和和其中的最大值与最小值。矩阵不超过20行。思路因为矩阵不超过20行,可以考虑每一行直接开一棵线段树进行维护。区间加法与查询区间加法和查询很简单,只需要参照正常线段树,一颗一颗维护就行。要注意的一点,区间加法对于最大值和最小原创 2022-03-15 23:09:50 · 75 阅读 · 0 评论 -
【日志】旋转Treap
旋转TreapTreap树的名字来自于Tree+Heap,因为它结合了树(二叉搜索树)和堆(二叉堆)。(所以可以翻译为树堆?)。虽然感觉除了代码长点,这个旋转Treap也不是不好,但是fhp能做到的它做不到……虽然Treap相对简单,但是下面这行代码对写平衡树很有用。#define debug(x) std::cerr << #x << " " << x << '\n'结点性质在Treap中,各个结点的值val具有跟二叉搜索树一致的性质。同时,每原创 2022-03-12 22:23:13 · 1112 阅读 · 0 评论 -
【日志】珂学——珂朵莉树
珂朵莉树(珂学)珂朵莉树(或者老司机树)起源于CF896C。前置知识点STL中set的使用(list也行,但是效率差点)set的排序规则inserteraselower_bownd暴力使用珂朵莉树通过直接对区间进行暴力维护。不同于线段树或者树状数组对于区间的维护,珂朵莉树相当于直接把区间拆出来进行修改。下面的代码基于CF896C。定义珂朵莉树的定义如下:// using ll = long long;class ODT { private: class原创 2022-03-10 14:51:04 · 547 阅读 · 0 评论 -
【模板】Kruskal重构树
Kruskal 重构树模板知识点Kruskal 算法LCA(倍增LCA或者Trajan算法)模板这里使用用倍增LCA。例题为:P1967 火车运输。除了Kruskal求生成树含在main函数里面,其他都已经用结构体封装好。#include <bits/stdc++.h>using namespace std;#define all(x) std::begin(x), std::end(x)const int MAXN = 1e6 + 10;int n, m;vec原创 2022-03-09 10:56:24 · 225 阅读 · 0 评论 -
【模板】复数的简单模板
复数复数类的模板。(然而如果你实现了一个template向量模板的话,只需要修改一点东西就可以变成复数)形同a+bia+bia+bi的数就称为复数,其中i=−1i=\sqrt{-1}i=−1。c++里面有std::complex,不过自己实现一个会更快。模板下面是以double实现的复数,也可以使用template。struct Complex { double x, y; // 实部与虚部 Complex(double x = 0, double y = 0) : x(x),原创 2022-03-03 00:23:56 · 211 阅读 · 0 评论 -
【模板】Trie KMP ACAM模板
模板原创 2022-03-02 10:19:55 · 57 阅读 · 0 评论