03 2021 档案
摘要:$\text{KMP}$匹配 \(kmp\) 匹配是一种高效的求两个字符串,其中一个串是否为另一个串的子串,并且要算出匹配位置的算法。 思想: 我们可以这么想,假如说现在有两个字符串 a b a a b b a b a b a b a b a b 如果一位一位去匹配,时间是 \(O(nm)\) ,会
阅读全文
摘要:EXGCD 拓展欧几里得算法 明明算是个基础知识为啥会没学过 我们知道gcd求的是最小公倍数,可以运用裴蜀定理求一个二元一次方程是否有解。 那么现在给定一个形如 \(ax+by=c\) 的方程,让你求 $x和y$的值,该怎么求呢? 这就引入了 \(exgcd\) 这个算法。 exgcd通常用来求形如
阅读全文
摘要:CF1494A ABC String 宣传博客 题目大意: 输入一串有$A,B,C$的字符串,把$A,B,C$分别定义为 "(" 或 ")",判断转换之后字符串是否合法。 解题思路: 读懂题目后,很容易就想到括号匹配这一道题,这道题的前置知识就是这个。 假设$b$为括号序列,括号匹配代码: queu
阅读全文
摘要:ATcoder ABC 194题解 1.没啥好说的 #include<bits/stdc++.h> using namespace std; int n,a,b,c; int main() { cin>>a>>b; c=a+b; if(c>=15&&b>=8) cout<<1<<endl; else
阅读全文
摘要:今天突然发现一个严重的问题 $if()$中的顺序很重要。 我们在一个$dfs$中,就像这道题: P5018 我们在$check$函数中,因为是一个递归,所以在if中先要判断好当前节点才能去进行递归。 就像这一行: if(l!=-1&&r!=-1&&a[l]==a[r]&&check(L[l],R[r
阅读全文
摘要:AC自动机 引入: 我们之前对于字符串,学过了$kmp$匹配和$trie$树的写法,但是我们知道,这样的写法只能适用于两个字符串相互比较,并不能多个。 因此,我们引入了AC自动机这个概念。 AC自动机的意思并不是让你自动AC,而是一种匹配字符串的方法。 实例: 给定 \(n\) 个模式串和 \(1\
阅读全文