自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 stl常见用法

vector(变长数组),倍增的思想,支持比较运算(按字典序) 定义:: vector <int> a; 定义:一个vector数组a vector <int> a(10); 定义:一个长度为10的vector数组a vector <int> a(10,3); 定义:一个长度为10的vector数组a,并且所有元素都为3 常用函数:: size(); 返回元素个数 empty(

2022-01-23 15:33:16 133

原创 字符串哈希

#include <iostream>using namespace std;typedef unsigned long long ULL;const int N=100010,P=131;int n,m;char str[N];ULL h[N],p[N];ULL get(int l,int r){ return h[r]-h[l-1]*p[r-l+1];}int main(){ scanf("%d%d%s",&n,&m,str+1);

2022-01-23 15:32:36 314

原创 模拟散列表开放寻址法

#include <iostream>#include <cstring>using namespace std;const int N=200003,null=0x3f3f3f3f;int h[N];bool find1(int x){ int k=(x%N+N)%N; while(h[k]!=null && h[k]!=x){ k++; if(k==N) k=0; } return

2022-01-14 16:18:00 195

原创 模拟散列表拉链法

#include <iostream>#include <cstring>using namespace std;const int N=100003;int h[N],e[N],ne[N],idx;void insert1(int x){ int k=(x%N+N)%N; e[idx]=x; ne[idx]=h[k]; h[k]=idx++;}bool find1(int x){ int k=(x%N+N)%N;

2022-01-14 16:00:25 275

原创 acwing模拟堆

#include <iostream>#include <algorithm>#include <string.h>using namespace std;const int N=100010;int h[N],ph[N],hp[N],size1;//ph[k]存的是第k个插入点在堆内下标,hp[k]是堆内第k个结点是第几个插入的点void head_swap(int a,int b){ swap(ph[hp[a]],ph[hp[b]]);

2022-01-14 00:22:23 258

原创 acwing堆排序

#include <iostream>#include <algorithm>using namespace std;const int N=100010;int n,m;int h[N],size1;void down(int u){ int t=u; if(u*2<=size1 && h[u*2]<h[t]) t=u*2; if(u*2+1<=size1 && h[u*2+1]<h[

2022-01-13 23:06:33 99

原创 并查集应用:连通分量及每分量结点数

#include <iostream>using namespace std;const int N=100010;int n,m;int p[N],size1[N];int find1(int x){ if(p[x]!=x)p[x]=find1(p[x]); return p[x];}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { p

2022-01-13 22:52:27 209

原创 并查集相关

#include <iostream>using namespace std;const int N=100010;int p[N];int n,m;int find(int x){ if(p[x]!=x)p[x]=find(p[x]); return p[x];}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) p[i]=i; while(m--)

2022-01-13 15:46:28 85

原创 trie树

trie树用于建立和查找字符串的数据结构#include <iostream>using namespace std;const int N=100010;int son[N][26],cnt[N],idx;char str[N];void insert(char str[]){ int p=0; for(int i=0;str[i];i++){ int u=str[i]-'a'; if(!son[p][u])son[p][

2022-01-13 15:31:46 93

原创 kmp算法

#include <iostream>using namespace std;const int N=10010,M=100010;int n,m;char p[N],s[M];int ne[N];int main(){ cin>>n>>p+1>>m>>s+1; //求next过程 for(int i=2,j=0;i<=n;i++){ while(j&& p[i]

2022-01-11 19:49:51 121

原创 acwing单调队列

#include <iostream>using namespace std;const int N=1000010;int n,k;int a[N],q[N];int main(){ scanf("%d%d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&a[i]); int hh=0,tt=-1; for(int i=0;i<n;i++){ if(h

2022-01-11 17:13:46 273

原创 acwing单调栈

#include <iostream>using namespace std;const int N=100010;int n;int stk[N],tt;int main(){ cin>>n; for(int i=0;i<n;i++){ int x; cin>>x; while(tt&&stk[tt]>=x)tt--; if(tt)

2022-01-11 16:54:51 213

原创 模拟栈队列

const int N=100010;int stk[N],tt==0;//插入stk[++tt]=x;//弹出tt--;//判断栈是否为空if(tt>0) not empty;else empty;//栈顶stk[tt];//*************队列int q[N],hh,tt=-1;q[++tt]=x;//插入hh++;//弹出if(hh<=tt) not empty else empty //取出队头元素q[hh]

2022-01-11 16:07:08 131

原创 双链表数组模拟

int m;int e[N],l[N],r[N],idx;//初始化void init(){ r[0]=1;l[0]=0; idx=2;}//在下标是k的结点右边插入void add(int k,int x){ e[idx]=x; r[idx]=r[k]; l[idx]=k; l[r[k]]=idx; r[k]=idx; idx++;}void remove_k(int k){ r[l[k]]=r[k]; l[r[k]]=l[

2022-01-11 15:45:44 168

原创 Acwing 826 单链表

#include <iostream>using namespace std;struct Node{ int val; Node * next;};//不常用//new node;//很慢const int N=100010;int head,e[N],ne[N],idx; //head表示头节点下标//e[i]表示节点i的值//ne[i]表示i的next指针//idx表示当前已经用到哪个点void init(){ head=-1;

2022-01-11 15:06:20 389

原创 中缀转后缀并计算

#include <iostream>#include <cstdio>#include <string>#include <stack>#include <queue>#include <map>using namespace std;struct node { double num; char op; bool flag;};string str;stack<node>

2022-01-09 14:49:26 49

原创 acwing区间合并

#include <iostream>#include <algorithm>#include <vector>using namespace std;typedef pair<int,int> PII;const int N=100010;int n;vector<PII> segs;void merge(vector<PII> &segs){ vector<PII> res;

2022-01-07 15:00:00 97

原创 acwing 802 区间和

#include <iostream>#include <vector>#include <algorithm>using namespace std;const int N=300010;typedef pair<int,int> PII;int n,m;int a[N],s[N];vector<int> alls;vector<PII> adds,query;int find(int x){

2022-01-07 14:45:01 72

原创 二进制中1的个数

#include <iostream>using namespace std;int lowbit(int x){ return x&-x;}int main(){ int n; cin >> n; while(n--){ int x; cin >> x; int res=0; while(x) {x-= lowbit(x); res++;}

2022-01-07 13:51:39 360

原创 最大不连续序列长度

#include <iostream>using namespace std;const int N=100010;int n;int a[N],s[N]={0};int main(){ cin >> n; for(int i=0;i<n;i++) cin >>a[i]; int res=0; for(int i=0,j=0;i<n;i++){ s[a[i]]++; whil

2022-01-04 23:00:58 540

原创 大整数运算

#include <iostream>#include <stdio.h>#include <vector>using namespace std;const int N=1e6+10;vector<int> add(vector<int>&A,vector<int>&B){ vector<int> C; int t=0; for(int i=0;i<A.

2022-01-04 22:06:21 52

原创 最大公约数

最大公约数int gcd(int a,int b){ if(b==0) return a; else return (b,a%b);}

2022-01-04 17:12:19 149

原创 二分查找模板

二分查找模板int bsearch_1(int l, int r){ while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } return l;}int bsearch_2(int l, int r){ while (l < r) { int mid =

2022-01-03 19:01:30 215

原创 算法笔记:归并排序

在这里插入代#include <iostream>using namespace std;const int N=100010;int n;int q[N],tmp[N];void merge_sort(int q[],int l,int r){ if(l>=r) return; int mid = l + r >> 1; merge_sort(q,l,mid),merge_sort(q,mid+1,r); int k=0,i=

2022-01-03 17:20:59 477

原创 算法笔记:快速排序

#include <iostream>using namespace std;const int N=100010;int n;int q[N];void quick_sort(int q[],int l,int r){ if(l>=r) return; int x=q[(l+r)/2],i=l-1,j=r+1; while(i<j){ do i++; while(q[i]<x); do j--; while

2022-01-03 13:44:40 54

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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