![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法积累
rejudge
不积跬步无以至千里~
展开
-
模拟加法 & 结构体基本用法
leetcode 2.两数相加原创 2022-01-01 16:59:28 · 634 阅读 · 0 评论 -
【算法】并查集
目录原理模板题扩展题目 原理 模板题 acwing 836.合并集合 输入 4 5 M 1 2 M 3 4 Q 1 2 Q 1 3 Q 3 4 输出 Yes No Yes #include<iostream> #include<cstdio> using namespace std; const int N=100010; int n,m; int p[N];//每个元素的父节点是谁 //返回x祖宗结点(所在集合编号)+路径压缩 int find(int x) {原创 2021-10-12 22:30:14 · 63 阅读 · 0 评论 -
【算法】Trie树
目录原理模板题模板题 原理 模板题 acwing 835.Trie字符串统计(模板题) #include<iostream> #include<cstdio> using namespace std; const int N=100010; //son每个点的所有儿子 //cnt以当前结点结尾的字符串的个数 //idx当前下标,下标是0的点,既是根节点又是空结点 int son[N][26],cnt[N],idx; char str[N]; void insert(char原创 2021-10-12 20:04:35 · 61 阅读 · 0 评论 -
【算法】KMP
acwing 831.KMP字符串 #include<iostream> #include<cstdio> using namespace std; const int N=100010,M=1000010; int n,m; char p[N],s[M];//s主串,p模式串 int ne[N];//next数组 int main() { cin>>n>>p+1>>m>>s+1; //求next过程原创 2021-10-12 16:36:26 · 61 阅读 · 0 评论 -
【数据结构】栈&队列
#include<iostream> using namespace std; const int N=100010; //********************************栈 //栈顶下标tt int stk[N],tt; //插入 stk[++tt]=x; //弹出 tt--; //判断栈是否为空 if(tt>0) not empty else empty //栈顶 stk[tt]; //********************************队原创 2021-10-05 23:13:01 · 61 阅读 · 0 评论 -
【常用技巧】
保留指定小数位 C++ cout 输出指定小数位 #include<iomanip> cout<<setiosflags(ios::fixed)<<setprecision(3); cout<<2.1<<endl; //输出2.100 C++ printf 输出指定小数位 #include<cstdio> printf("%.3f",2.1); //输出2.100 字符串长度 ...原创 2021-10-05 21:12:01 · 97 阅读 · 0 评论 -
【数据结构】静态链表
单链表 acwing 826.单链表 #include<iostream> using namespace std; const int N=100010; int head,e[N],ne[N],idx; //第idx个插入的数 void init() { head=-1; idx=0; } void add_to_head(int x) { e[idx]=x; ne[idx]=head; head=idx; idx++; } voi原创 2021-10-05 16:20:34 · 66 阅读 · 0 评论 -
冒泡排序
int N; for(long i=0;i<=N-2;i++){ for(long j=0;j<N-1-i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; ...原创 2020-02-24 20:28:14 · 89 阅读 · 0 评论 -
最大公约数和最小公倍数 注意:1不是素数
#include<iostream> using namespace std; int A(int a,int b){ int c=a%b; if(c!=0){ a=b; b=c; A(a,b); } else return b; } int main() { int a,b; ...原创 2020-01-21 17:36:25 · 170 阅读 · 0 评论 -
判断回文数
#include<iostream> using namespace std; //判断n是否为回文数 bool symm(unsigned n) { unsigned i=n,m=0; /*相当于 unsigned int i=n,m=0; */ while(i>0) { m=m*10+i%10; i/=10; ...原创 2020-01-21 17:12:05 · 201 阅读 · 0 评论