模板
Lupin123123
这个作者很懒,什么都没留下…
展开
-
带括号的四则运算计算器
栈的应用,思想比较容易,代码实现起来还是比较烦的,尤其是处理括号的时候。不过确实锻炼coding的能力。大致思路:1.开两个栈,一个符号栈,一个数字栈。2.从头到尾遍历整个字符串,遇到运算符就把紧挨这个运算符的数字加到数字栈中,计算运算符之前的结果。遇到’(‘就直接放入符号栈,遇到’)‘就出栈到’('为止。具体代码:#include<bits/stdc++.h>#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0原创 2021-08-08 13:39:16 · 1442 阅读 · 1 评论 -
[模板] kmp
1.可重叠匹配(基本应用)char s1[maxn],s2[maxn];int len1,len2,ans;int p[maxn];void get(){ int j=0; p[1]=0; for (int i=2; i<=len2; i++) { while(j && s2[j+1]!=s2[i]) j=p[j]; if (s2[j+1]==s2[i]) j++; p[i]=j; }}void work(){ ans=0; int j=原创 2021-08-13 02:26:29 · 112 阅读 · 0 评论 -
[模板] 后缀数组
int n,m;int height[maxn];char s[maxn];int rak[maxn],sa[maxn],tp[maxn],tax[maxn];void bucket() //桶排序{ for(int i=0; i<=m; ++i) tax[i]=0; for(int i=1; i<=n; ++i) tax[rak[i]]++; for(int i=1; i<=m; ++i) tax[i]+=tax[i-1]; for(int i=n; i>=1原创 2021-07-31 22:14:13 · 71 阅读 · 0 评论 -
[模板] 树的直径
以POJ - 2631为例,求树的直径和路径上的点#include<bits/stdc++.h>#define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define INF 0x3f3f3f3ftypedef long long ll;const int maxn = 1e5+5;using namespace std;int cnt,head[maxn];struct e{ int to; int原创 2021-08-04 15:33:12 · 197 阅读 · 0 评论