![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日背诵模板
自己每天起床背模板,弃坑了,停更
kylinholmes
这个作者很懒,什么都没留下…
展开
-
C++ STL
C++ STL常用的 STL 头文件如下文章目录C++ STLvectorqueuedeuqesetmapbitsetalgorithmvector简单来说vector是一个动态数组,数组长度可变。和数组一样支持随机访问 [] ,对比数组增加了一些函数:size/emptysize函数会返回vector的元素个数,empty会返回一个bool类型,表示vector是否为空*所有的STL容器都支持这两个方法,含义也相同,后面不再重复给出clear清空vector数组begin/原创 2020-08-14 14:05:42 · 117 阅读 · 0 评论 -
博弈论的算法总结
常见博弈算法模型总结转载自大佬博客文章目录常见博弈算法模型总结博弈:常见的博弈:巴什博弈:威佐夫博弈:尼姆博弈(Nimm Game):博弈:博弈论又被称为对策论(Game Theory),既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈,具体的例子就是下棋,双方都考虑最有利于自已的步骤,但是最终必有一方输,一方赢。博弈的策略:参与者在行动之前所准备好的一套完整的行动方案,就是想好下完这步棋,对方会如何下,以及接下来该如何下,最终得出结果。常见的博弈:博弈:合作博弈和非合作博弈转载 2020-08-13 15:23:54 · 9470 阅读 · 1 评论 -
来看排列组合嘛
组合数的逆元写法看别人的没看明白,顺着自己思路写了一下其实也没什么好讲的,就是公式的写法,打表了 n!,还有对应的逆元inv。组合的公式: Cnm=n!m!(n−m)!C^m_n = \frac{n!}{ m!(n-m)!}Cnm=m!(n−m)!n!之后把分母换成对应的inv就行了问题: 给定n,m 求CnmC^m_nCnm#include <iostream>#define ll long longusing namespace std;const int N = 1原创 2020-06-28 01:37:17 · 176 阅读 · 0 评论 -
二分图的匹配问题 以及 相关算法模板
二分图的匹配问题以及相关 算法模板二分图的判定 染色法染色法原理:首先任意取出一个顶点进行染色,和该节点相邻的点有三种情况:1.如果未染色,那么继续染色此节点(染为另一种颜色)2.如果已染色但和当前节点颜色不同,则跳过该点3.如果已染色并且和当前节点颜色相同,返回失败(该图不是二分图)明确二分图、奇数环、染色法之间的关系:如果一个图中存在奇数环,那么这个图一定不是二分图;这一点显...原创 2020-06-19 15:48:48 · 140 阅读 · 0 评论 -
高精度算法
高精度算法高精度加法求a + b#include <iostream>#include <cstring>using namespace std;const int N = 1e6+6;int a[N],b[N],c[N];char s[N];int L;int la,lb;void add(int *a,int *b){ int t; for(int i=0;i<la||i<lb;i++){ t = a[i]原创 2020-06-05 08:43:17 · 273 阅读 · 0 评论 -
树桩数组模板
树桩数组模板#define lowbit(x) (x)&(-x) //查找父节点const int N = 1e6+6;int bit[N],n;// 减法的时候就 +(-x),单点修改void add(int i,int x){ while(i <= n){ bit[i]+=x; i=lowbit(i); }}// sum是1~i的和// sum[l,r] = sum(r) - sum(l-1)int sum(int i){ int s = 0; while原创 2020-05-13 01:45:44 · 237 阅读 · 2 评论 -
Eratosthenes 埃式素数筛 模板
Eratosthenes 埃式素数筛埃式素数筛的思路是这样的: 任何整数 x 的倍数 2x,3x…一定都不是素数。我们从小到大开始扫描,每扫描到一个数就标记为合数。当扫描到一个数时,没有被标记为合数,那么说明在2 ~ x - 1之间没有x的因数,所以 x 就是质数。const int N = 1e5+6;bool v[N];void prime(int n){ memset...原创 2020-04-17 20:00:28 · 146 阅读 · 0 评论 -
排序模板
排序模板快排void q_sort(int q[],int l,int r){ if(l >= r) return; int i = l - 1,j = r + 1,x = q[(l + r) >> 1]; while(i<j){ do i++; while(q[i]<x); do j++ ;while(q[j]>x); if(i < j) swap(q[i],q[j]); }原创 2020-05-10 08:22:14 · 108 阅读 · 0 评论 -
背包问题 - 01背包 、完全背包 、多重背包、还有混合背包
背包问题主要讲三个背包:01 背包,完全背包,多重背包。01 背包01背包的意思是选一个或者不选。朴素版:#include <iostream>#include <algorithm>using namespace std;const int N = 1111;int v[N]; //v[i]表示i个物品的价值int w[N]; //w[i]表示第...原创 2020-04-15 03:07:05 · 227 阅读 · 1 评论 -
二分模板
二分模板输入6 31 2 2 3 3 4345输出3 45 5-1 -1这里需要两个二分,一个找到最小的x,一个找到最大的xint bs1(int x){ int l = 0,r = n - 1,mid; while(l < r){ mid = (l+r) >> 1; if(a[mid] < x)l = mid + 1; el...原创 2020-05-08 17:31:02 · 133 阅读 · 0 评论 -
凸包 Graham扫描算法 模板
凸包 Graham扫描算法 模板struct P{ int x,y; // ? 构造函数,dot,重载 - 运算符}bool cmp(const P& p,const P& q){ if(p.x != q.x) return p.x < q.x; return p.y < q.y;}vector<P> convex_hull(P * ps...原创 2020-04-19 17:41:14 · 158 阅读 · 0 评论 -
最小生成树 Kruskal Prim 模板
最小生成树 Kruskal Prim 模板Kruskal:const int N = 5e6+5;int n,m,f[N];int ans;struct rec{int x,y,z;}edge[N];bool operator < (rec a,rec b){return a.z < b.z;}//并查集int find(int x){ return x == p[...原创 2020-04-18 19:14:48 · 143 阅读 · 0 评论