LucienShui

www.lucien.ink

[模板] C++ BigInteger 类

永久地址 http://www.lucien.ink/archives/313/ 不多比比,直接上模板 #include<bits/stdc++.h> //大整数 struct BigInteger { static const in...

2018-08-07 17:44:01

阅读数 303

评论数 0

扩展BSGS - 模板 - 数论

简介   BSGS算法,原名Baby Steps Giant Steps,又名大小步算法,拔山盖世算法,北上广深算法——by SLYZoier,数论基本算法之一。 问题   给定A,B,CA,B,C,求满足 Ax≡B (mod C)A^x \equiv B\ (mod\ C) 的最小非负...

2018-01-23 15:16:06

阅读数 202

评论数 0

「模板」 随机遍历数组

#include <iostream> #include <cstdlib> // srand rand #include <ctime> // time #include <algorithm> using namespace std; /...

2017-08-19 23:51:05

阅读数 285

评论数 0

「模板」 归并排序

void mergearray(int a[], int first, int mid, int last, int temp[]) { int i = first, j = mid + 1; int m = mid, n = last; int k = 0; ...

2017-08-19 23:49:38

阅读数 107

评论数 0

「模板」 左偏树 - 实现可并优先队列

template<typename T, typename _Compare=std::less<T> > class leftist_tree { private: struct node { T data; int deep; ...

2017-08-19 23:47:35

阅读数 213

评论数 0

[模板] 树堆 - Treap的指针和数组实现及一些例题

指针版:template <class T, class Compare = std::less<T> > class Treap { private: struct treap {//成员结构体 int size, fix;//以当前节点为根的树的...

2017-08-19 21:11:15

阅读数 251

评论数 0

[模板] 二叉堆 - 优先队列的二叉堆数组实现

最近开始学数据结构,一直无心更新博客,今天结束集训,晚上打算码一下最近的进度。/* * 创建一个最大容量为MaxSize的int型堆:MaxHeap<int> que(MaxSize); * 默认最大容量为1007:MaxHeap<int> que; * * 作为优...

2017-08-19 20:53:37

阅读数 223

评论数 0

[模板] + [详解] - 二分图最大匹配 - 匈牙利算法

讲解:  别人的博客传送门,图做的真的很棒:传送门模板: 成员:const int maxn = 207; int n,m;//n个点,m条边 bool col[maxn];//对点进行染色 bool vis[maxn];//标记点 int link[maxn];//将两点进行连接 vector&...

2017-08-10 22:59:11

阅读数 137

评论数 0

[模板] + [详解] - 二分图 - KM算法

讲解参考:  我就不再贴一遍了,直接传送门吧:传送门模板:  加了一些自己的理解。成员:int love[maxn][maxn],n;//love[i][j]表示第i个女生对第j个男生的好感度 int ex_girl[maxn];//第i个女生的当前期望值为ex_girl[i] int ex_bo...

2017-08-10 22:43:06

阅读数 202

评论数 2

[模板] - LCA倍增

成员:const int maxn = 1007; int up[maxn][32];//倍增数组 int depth[maxn];//每个点在树中的深度 int n,m;//n个点,m条边 bool vis[maxn]; vector<int> tree[maxn];//邻接表函数:...

2017-08-06 14:18:49

阅读数 113

评论数 1

[模板] - 读入挂 读入优化

我的读入挂:int read() { int x = 0; char c = getchar(); while (c &amp;lt; '0' || c &amp;gt; '9')c = getchar(); while (c &amp;gt...

2017-08-06 14:02:49

阅读数 2842

评论数 7

[模板] - 网络流 - Dinic & 当前弧优化

函数:邻接表部分:const int INF = 0x3f3f3f3f, maxn = 157; int N, NP, NC, M; struct E { int u, v, flow; E(int u = 0, int v = 0, int flow = 0): u(u), v(...

2017-08-03 17:40:04

阅读数 2812

评论数 4

[模板] - 网络流 - Dinic

数据成员:const int maxn = 207, INF = 0x3f3f3f3f; int n, m, mp[maxn][maxn];//邻接矩阵 int que[maxn*maxn], head, tail;//BFS队列 ,首,尾 int dist[maxn];//距源点距离,分层图 ...

2017-08-02 23:09:12

阅读数 125

评论数 0

[模板] - 矩阵快速幂

说明:  所有可能用到的操作已经被封装进结构体里了。用的时候根据题目再修改一下即可。实现:const int maxn = 107; int Matrixsize = 2, mod = int(1e9)+7; struct Matrix { int m[maxn][maxn]; M...

2017-08-01 20:42:36

阅读数 138

评论数 0

[模板] - 尺取法

尺取法:  尺取法应用于这么一类问题:在给定一组数据中找到不大于某一上限的“最优连续子序列”。  据个人理解来说,在尺取过程中就像是一条虫子在蠕动一样,先伸头,再缩尾。代码实现:int l = 0, r= 0, sum = 0, ans=n+1; while(true){ while(r ...

2017-07-24 19:43:01

阅读数 211

评论数 0

[模板] - 线段树 - Lazy标记 - 单点/区间更新 - 模板

线段树 - Lazy标记 - 单点/区间更新 - 模板目录: 前言 在这篇文章的代码中用到的宏定义 Lazy标记 区间更新 单点更新 模板 例题 1. 前言:  线段树我花了整整两天的时间去啃,进度很慢,但终究还是坚持下来了,在涉及到Lazy标记的部分卡了很久,刚开始看了一大堆理论,发现很晦涩,也...

2017-05-26 09:38:11

阅读数 525

评论数 0

[模板] - 略优化的并查集

略优化的并查集模板  之前写过一个题,是并查集+搜索,思路很明确但是不论我用什么我目前已知的方法去写这个题都一直TLE,最后问了学长才知道在做并归操作的时候通过维护树高可以优化最后所得树的结构。  闲话不多,还是结合注释看代码吧。const int maxn = (int)1e5+7; int p...

2017-05-15 14:28:56

阅读数 134

评论数 0

[模板] - 全排列

stl库函数输出全排列与DFS输出全排列

2017-05-14 00:38:00

阅读数 243

评论数 0

[模板] - 位运算求GCD

//位运算求解大数最大公约数 i64 stein(i64 a,i64 b) { if(a<b) return stein(b,a); if(b==0) return a; if((a&1)==0&&(b&1)==0) return 2*stein(...

2017-05-14 00:28:00

阅读数 360

评论数 0

[模板] - 快速幂 - 快速乘法

不含mod://快速乘法 long long qmul(long long a, long long b) { long long ans=0; while(b) { if(b&1) ans = (ans + a); a = (a+a); ...

2017-05-14 00:19:38

阅读数 195

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭