-
基础算法学习--Trie
#Trie算法模板题 Trie字符串统计 ##代码及注释 #include<iostream> using namespace std; const int N = 100010; int n; //son -> 所有的子节点,26对应题目出现的26个英文字母 //cnt -> 字符串出现的次数 / -
基础算法学习-- kmp
#kmp模板 匹配字符串 //next存下的值是当前区间最大前缀与后缀重合的值。 #include<iostream> using namespace std; const int N = 100010,M = 1000010; int n,m; char p[N],s[M]; int ne[N]; -
基础算法学习--单调队列
#单调队列模板 对于在队列的数来说他们都是单调的,该模板队头为队列最小值下标,队尾为队列最大值下标。 //共n个数据,k为维护的区间的长度 //遍历要处理的数据 for(int i = 0;i < n;i ++){ //队头滑出区间 while(hh <= tt && q[hh] <i - k + -
零散的笔记
高精度 输入输出格式 cin >> a >> b; for(int i = a.size()-1; i >= 0; i--) A.push_back(a[i] - '0'); //输入并倒序存储 for(int i = b.size()-1; i >= 0; i--) B.push_back(b[i -
数组模拟双链表
实现一个双链表,双链表初始为空,支持 5 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 k 个插入的数删除; 在第 k 个插入的数左侧插入一个数; 在第 k 个插入的数右侧插入一个数 现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。 注意:题目中第 k 个插入的 -
temp
1 -
整数与浮点数二分法
二分法 整数二分 有单调性一定能二分,但是能二分的题目不一定有单调性 注意点:刚开始可都写mid=(l+r)/2,若check之后r=mid,则保留之前写的,若check之后l=mid,则将前面改为mid=(l+r+1)/2 二分法模板 //二分法模板 //区间[1,r]被划分为[1,mid]和[m -
数组模拟单链表(可怕的素质)
可怕的素质 (100 分) 亚克星球上的人的素质跟我们福大人比起来,可以说是一个天上,一个地下了。他们去食堂吃饭的时候,很多人都不好好的排队,而是排在某个熟人的后面,或者直接就插到队伍的最前面。这让食堂的工作人员很是恼火。 输入格式: 第一行包含一个整数n(0<n<1000),表示有n个亚克星球上的 -
数组模拟单链表
实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数; 删除第 k 个插入的数后面的数; 在第 k 个插入的数后插入一个数。 现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第 k个插入的数并不是指当前链表的第 k个数。例如操作过程中一共插入了 n个数 -
数组模拟队列&栈
数组模拟队列&栈 栈 #include<iostream> using namespace std; const int N=100010; int stk[N],tt;//栈一般定义为stk[N],tt为栈点下标,栈习惯上从0开始 //插入 skt[++tt]=x;//表示在栈顶加入一个新的元素