
背过模板
这个模块是对AcWing上y总给出模板的集锦,大部分都是y总的思路和原版代码
Biang-Biang
干巴得
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找算法模板
查找边界 单调性 例:查找 “00001111111”为例,分别查找‘0’和‘1’的边界查找最右端‘0’的位置 #include<iostream>#include<string>using namespace std;int check(int l, int r,string s){ int mid; while(r>l){ mid=(l+r+1)>>1; //这里+1上取整为了防止死循环 if(s[mid]=='..原创 2020-07-12 09:54:52 · 136 阅读 · 0 评论 -
区间问题 (贪心)
区间选点题目:给定N个闭区间[ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。(位于区间端点上的点也算作区间内)1.按区间右端点排序2.记录最右端所选的点(初始为 -2e9) 若当前区间左端点大于最右端点,则res++,将当前区间的右端点更新为最右端点#include<iostream>#include<algorithm>#include<cstdio>using namespace std;.原创 2021-01-11 23:38:29 · 545 阅读 · 0 评论 -
最小生成树算法
最小生成树不含负权边Prim算法求最小生成树:https://www.acwing.com/problem/content/860/伪代码:初始化:dist[i] 为到集合S的距离,用st[i]数组标记这个点是否已经在集合S中;S就代表着最小生成树for i: 1~n 1.找出不在集合S中的,距离集合S最近的点,加入集合S 2.用这个点更新其他点距集合S的距离#include<iostream>#include<cstring>#include<alg原创 2020-12-18 21:42:00 · 165 阅读 · 1 评论 -
最短路算法总结
#mermaid-svg-A9LHgUdoiEkTen4K .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-A9LHgUdoiEkTen4K .label text{fill:#333}#mermaid-svg-A9LHgUdoiEkTen4K .node rect,#mermaid-svg-A9LHgUdoiE原创 2020-12-15 08:51:49 · 175 阅读 · 0 评论 -
有向图的拓扑序列(拓扑排序)
拓扑排序:有向无环图(拓扑图) 拓扑序列是顶点活动网中将活动按发生的先后次序进行的一种排列前提: 有向无环图→\rightarrow→ 一定存在入度为0的点思路: 先将入度为0的点入队;出队一点,按bfs的思路 每到下一点,就将这一点的度减1,当此点的度为0时,再将此点入队 ,当队尾指针tt=-1的值为n-1时,表示此图可以拓扑排序。此时,q[0~n-1]的值即为拓扑序有向图的拓扑序列:https://www.acwing.com/problem/content/850/#include<原创 2020-12-14 18:01:10 · 3662 阅读 · 0 评论 -
n皇后问题
题目链接:https://www.acwing.com/problem/content/845/枚举每一行,判断列,对角线是否满足条件#include<iostream>#include<cstdio>using namespace std; const int N=20;char g[N][N];bool st[N], dg[2*N], udg[2*N];int n;void dfs(int u){ if(u==n){ for(int i=0;i<原创 2020-12-12 23:40:26 · 196 阅读 · 0 评论 -
Trie树+最大异或对
Trie树:o(n)建树,o(1)查找单词o(n)建树,o(1)查找单词o(n)建树,o(1)查找单词Trie字符串统计:https://www.acwing.com/problem/content/837/代码:#include<iostream>using namespace std;const int N=1e5+5;char str[N];int son[N][26], cnt[N],idx;void insert(char str[]){ int p=0; fo原创 2020-12-06 22:27:13 · 154 阅读 · 0 评论 -
并查集模板
【代码】并查集模板。原创 2020-12-05 17:41:41 · 113 阅读 · 1 评论 -
kmp算法模板和基础应用
模板题:https://www.acwing.com/problem/content/833/题意:给两个字符串长度及序列,求第一个串在第二个串中出现的位置 3aba 5ababa求next数组:for(int i=2,j=0;i<=m;i++){ while(j&&p[i]!=p[j+1])j=ne[j]; if(p[i]==p[j+1])j++; ne[i]=j;}...原创 2020-12-05 17:36:47 · 116 阅读 · 0 评论 -
求区间和(区间离散化)
题目链接:https://www.acwing.com/problem/content/804/思路:区间离散化就是映射的思维去重函数:alls.erase(unique(alls.begin(),alls.end()), alls.end());unique函数返回指针指向去重后不重复序列的最后一个元素的下一个元素代码:#include<iostream>#include<vector>#include<algorithm>using namespa原创 2020-11-20 08:44:58 · 404 阅读 · 0 评论 -
石子合并(区间dp)
题目链接:https://www.acwing.com/problem/content/284/思路:f[i][j]=min(f[i][k]+f[k+1][j])k∈(i,j−1)f[i][j]=min(f[i][k] + f[k+1][j] ) k\in(i,j-1)f[i][j]=min(f[i][k]+f[k+1][j])k∈(i,j−1)/*区间DP:石子合并 */#include<cstdio>#include<iostream>#include<al原创 2020-11-12 21:23:36 · 110 阅读 · 0 评论 -
递归模板
递归实现指数型枚举给出一个集合的所有子集题目链接:https://www.acwing.com/activity/content/problem/content/1545/1///学会画递归搜索树 #include<iostream>#include<cstdio>using namespace std;int st[20],n;void dfs(int u){ //0表示在考虑,1选,2表示不选 if(u>n){ for(int i=1;i<=n原创 2020-10-27 21:05:41 · 411 阅读 · 0 评论 -
高精度(大整数)模板
模板来自与y总题目链接:https://www.acwing.com/activity/content/problem/content/825/1/加法:#include<iostream>#include<vector>#include<string>using namespace std;vector<int> add(vector<int>&A, vector<int>&B){ vector&l原创 2020-10-26 20:33:47 · 166 阅读 · 0 评论 -
排序
快速排序题目链接:https://www.acwing.com/problem/content/787/找参照数x,可以随机选择,一般选择q[l], q[r],q[(l+r)/2];划分为两个区间,{左部部分}<=x;{右半部分}>=x;递归处理左右两部分#include<cstdio>#include<algorithm>using namespace std;const int N=1e5+5;int a[N];void quick_sort(原创 2020-10-24 00:26:17 · 126 阅读 · 0 评论