C++
心广体胖
这个作者很懒,什么都没留下…
展开
-
C++之并查集模板
并查集模板#include <iostream>#include<cstdlib>struct unionfind{ int bin[10005];unionfind() { for (int i = 0; i < 10005; i++) { bin[i]=i; } ...原创 2019-07-23 16:05:57 · 147 阅读 · 0 评论 -
c++学习之完全排序树的插入与遍历
#include <cstdlio>#include <iostream>using namespace std;// 完全排序树(左小于根小于右)//采用的是中序遍历struct Node{ int var, lt, rt, w; //当前节点,左子节点,右子节点,当前节点出现的次数} T[10000]; //多少个节点...原创 2019-07-28 20:31:17 · 103 阅读 · 0 评论 -
C++学习之用vector存树
用vector存图const int N=1e5+10;vector<int> G[N];void addedge(int u,int v){ G[u].push_back(v); G[v].push_back(u);}用vector存图(有边权)const int N=1e5+10;struct Edge{ int v,w;};Edge make_Edge(...原创 2019-07-28 17:12:23 · 2406 阅读 · 0 评论 -
c++之全排列模板
#include using namespace std;int vis[100];int a[100];int n;void dfs(int cur)//当前读到 的位置{if (cur == n + 1){for (int i = 0; i < n; i++){printf("%5d", a[i]);}return;}else{for (int i = ...原创 2019-07-27 18:07:45 · 312 阅读 · 0 评论 -
C++之双向队列
双向队列#include<deque>deque <int> d;d.push_front();d.push_back()d.pop_front();d.pop_back()d.front()d.back()d[i]://d现在的第i个元素 时间复杂度高(少用)原创 2019-07-23 15:12:12 · 281 阅读 · 0 评论 -
C++之快速读入
快速读入适用范围:读入字符串数字。准备:需要两个int:sum,k;类似于倒排数,一个是和,一个控制位数。for (int j = i - 1; j >= 0 && a[j] <= '9' && a[j] >= '0'; j--) { s = s + (a[j] - '0') * k; k *= 10; }...原创 2019-07-23 14:34:13 · 260 阅读 · 0 评论 -
c++之快速幂模板及其取模
// a^b#include <cstdio>#include <iostream>using namespace std;int fast_pow(int a, int b){ int ans = 1; base = a; while (b != 0) { if (b & 1 != 0) ...原创 2019-07-27 12:06:46 · 613 阅读 · 0 评论 -
c++学习之卡特兰数
卡特兰数递推C(n)=[2x(2n-1)/(n+1)] xc(n-1);转载 2019-07-27 12:05:39 · 1792 阅读 · 0 评论 -
c++学习之堆模板
堆的模板(排序)#include <algorithm>#include <cstdio>using namespace std;#define LE(x) (x << 1)#define RT(x) ((x << 1) | 1)#define DAD(x) (x >> 1)struct heap{ int to...原创 2019-07-25 23:41:35 · 115 阅读 · 0 评论 -
c++学习之高精度初体验
今天花了大半天的时间又过了一道蓝题今天主要学习了高精度,sort()函数,vector不定长数组的使用洛谷p1080#include <algorithm>#include <string>#include <iostream>#include <vector>using namespace std;vector<int>...原创 2019-07-25 20:37:20 · 100 阅读 · 0 评论 -
c++之前缀和及差分
参考例题洛谷p1083#include <iostream>#include <cstring>using namespace std;const int maxn = 1e6 + 10;int r[maxn] = {0};int b[maxn] = {0};int d[maxn] = {0};int s[maxn] = {0};int t[maxn] ...原创 2019-07-24 21:12:38 · 2548 阅读 · 0 评论 -
c++学习之图的遍历 ——深度优先搜索与广度优先搜索对比
遍历一张图const int N=1e5+10;vector<int> G[N];void addedge(int u,int v){ G[u].push_back(v); G[v].push_back(u);}int vis[N];void dfs(int u){ vis[u]=1; for(int i=0;i<G[u].size();i++){ int...原创 2019-07-29 00:20:26 · 211 阅读 · 0 评论 -
c++学习之树的重心及直径
树的重心想法:#include<bits/stdc++.h>const int N=1000010;const int inf=0x7f7f7f7f;using namespace std;int f[N],size[N],n,head[N],tot;int rt,sum;vector<int> G[N];void addedge(int u,int v)...原创 2019-07-28 23:54:56 · 398 阅读 · 0 评论 -
c++学习之树的遍历
树的遍历#include<bits/stdc++.h>using namespace std;const int N=1e5+10;vector<int> G[N];void addedge(int u,int v){ G[u].push_back(v); G[v].push_back(u);}int n,dis[N],d,ans;void dfs(in...原创 2019-07-28 23:15:19 · 104 阅读 · 0 评论 -
C++学习之sort排序及priority_queue
sort函数sort(起始地址,终止地址,cmp)cmp可加可不加。(默认从小到大)bool cmp(a,b){return a>b;//从大到小排序}重点:priority_queue用法:默认的数据类型:priority_queue<类型,vector<类型>,less<类型> >;//从大到小排序priority_queue&...原创 2019-08-11 10:18:42 · 465 阅读 · 0 评论