模板
是奥利奥阿
世上安得两全法,不负AC不负卿
展开
-
最短路模板(自用)
摘自:https://blog.csdn.net/qq_36932169/article/details/78806863Floyd算法是多源最短路算法,复杂度最高(n ^ 3),通常用在点比较少的起点不固定的问题中。能解决负边(负权)但不能解决负环。Dijkstra算法是单源最短路算法,最常用时间复杂度(n ^ 2)优化后可以达到(nlogn),不能解决负边问题,稀疏图需要耗费比较多的空间。...原创 2019-02-22 00:20:29 · 198 阅读 · 0 评论 -
线段树模板 (自用)
包括单点查询,单点更新,区间查询,区间更新,(Lazy标记应用)代码包含注释如下#include <iostream>#include <algorithm>#include <iostream>#include <string>#include <stdio.h>#include <algorithm>#in...原创 2019-02-20 23:20:35 · 89 阅读 · 0 评论 -
高精度计算模板 (自用)
摘自:http://blog.sina.com.cn/s/blog_4fdb102b010087ng.html一.高精度数的存储1.如对数采用的字符串输入#include <iostream>#include <cstring>using namespace std;const int N = 100;//最多100位int main(){ int a[N...原创 2019-02-20 15:58:16 · 145 阅读 · 0 评论 -
并查集模板 (自用)
const int maxn = 1e5 + 7;int pre[maxn];//根数组int Find(int x)//找到x的根{ int p, tmp; p = x; while (x != pre[x]) x = pre[x]; while (p != x) { tmp = pre[x]; pre[x] = x; p = tmp; } return x;...原创 2019-02-20 15:54:00 · 121 阅读 · 0 评论 -
错排公式 & 卡特兰数 (自用)
错排公式有一个有n个元素的排列,所有元素均不在自己位置上称为完全错排。n个元素的错排数记为D(n)long long D[25];//存储前n个错排D(n)void cp(){ D[1] = 0; D[2] = 1; for (int i = 3; i < 21; i++) { D[i] = (i - 1)*(D[i - 1] + D[i - 2]); }}卡特兰数...原创 2019-02-20 15:52:31 · 296 阅读 · 0 评论 -
01背包 & 完全背包框架 (自用)
01背包const int N = 11;//n+5,这里n表示物品数(此处为n=6int v[N] = { 0,8,10,6,3,7,2 };//表示价值数组//第1项必须设为0,递归出口int w[N] = { 0,4,6,2,2,5,1 };//表示重量数组//第1项必须设为0,递归出口int m[N][N];//m[n][c]表示可能取得的最大价值int n = 6, c = 1...原创 2019-02-20 15:49:04 · 284 阅读 · 0 评论 -
扩展欧几里得算法 (自用)
(扩展欧几里得:存在 x,y 使得 gcd(a,b)=ax+by )int exgcd(int a, int b, int &x, int &y)//int函数中设置x,y=0,可求得a,b公约数以及一组x,y//(求出来的x,y可能为负,对其做以下操作可使其非负:(x%9973+9973)%9973{ if (b == 0) { x = 1; y = 0; ...原创 2019-02-20 15:45:30 · 129 阅读 · 0 评论 -
丑数打表 & 计算 (自用)
(丑数定义:只包含因子2,3,5的正整数被称作丑数)#define min(a,b) ((a)<(b)?(a):(b))#define min4(a,b,c,d) min(min(a,b),min(c,d))int choushu[5850];int main(){ int n = 1; int p2, p3, p5, p7; p2 = p3 = p5 = p7 = 1; ...原创 2019-02-20 15:43:01 · 371 阅读 · 0 评论 -
计算不大的组合数 & 快速幂算法 & 判断素数 (自用)
计算不大的组合数int conb[25][25];//(n<25,m<25)int C(int n, int m)//C(n,m){ int i, j; for (i = 0; i < n + 1; i++) { for (j = 0; j <= i; j++) { if (i == j || j == 0) conb[i][j] = 1...原创 2019-02-20 15:41:33 · 138 阅读 · 0 评论 -
一般所需头文件 & scanft常用输入流(自用)
头文件#include <iostream> #include <algorithm> #include <iostream>#include <string>#include <stdio.h>#include <algorithm>#i...原创 2019-02-20 15:37:48 · 3403 阅读 · 0 评论 -
队列(queue)的常用函数
转载自:https://www.cnblogs.com/xuning/p/3321733.html在C++中只要#include即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序)pushpopsizeemptyfrontback接下来逐一举例说明:push队列中由于是先进先出,push即在队尾插入一个元素,如:1 queue q;2 q.p...转载 2019-02-23 03:05:09 · 13842 阅读 · 0 评论 -
计算组合数C(n,m)(大数板子)
发现网上关于计算组合数的比较少,于是整理出来个板子C(n,m)=n!/[m!×(n-m)!]A(n,m)=n×(n-1)×(n-2)…(n-m+1)C(n,m)=A(n,m)/A(m,m)int conb[25][25];//(n<25,m<25)int C(int n, int m) { int i, j; for (i = 0; i < n + 1; i++)...原创 2019-07-30 14:42:56 · 1563 阅读 · 0 评论