摘要: 我们令第一个字符串为 s,第二个字符串为 t,需要求出 t 在 s 中不重叠的匹配个数。 KMP算法的思想:在匹配 s 的过程中,每次遇到失配的点 s[i]!=t[j],我们应该快速地选择 t[0...j-1] 的 border,实现不往回移动 i 的前提下,快速地完成 s[0...i-1] 的后缀 阅读全文
posted @ 2025-01-14 15:44 e4ns 阅读(33) 评论(0) 推荐(0)
摘要: 二叉搜索树(二叉排序树) 其实非常简单,首先来看,如何建树 给定一串数。 1.以第一个为根结点。 2.从根结点开始,比当前结点小的去左子树,比当前结点大的就去右子树,子树空了就插入。 3.结束。 搜索也是一样 小的去左子树,大的去右子树,如果空就是失败 链式vector存图(简单图) 搞一个vect 阅读全文
posted @ 2024-08-01 20:37 e4ns 阅读(34) 评论(0) 推荐(0)
摘要: 根据标题可知 这道题一定是一道枚举题 这道题考虑使用dfs,处理特殊处理第一层,每次加答案时选最优值。 给出代码: 点击查看代码 #include<bits/stdc++.h> using namespace std; int n,m; char mat[20][110]; int dfs(int 阅读全文
posted @ 2024-07-12 23:09 e4ns 阅读(16) 评论(0) 推荐(0)
摘要: 显然,这道题使用快排第k大做,快排第k大思想:(下标从1开始)每次找一个key值,一轮后可以得到key在原数组中的位置(暂且称之为a),把a和n-k+1值比较,一样就返回,小就往左边找,大就往右边找。 然后原数组在main里按题目要求初始化一下就行了 点击查看代码 #include<bits/std 阅读全文
posted @ 2024-07-08 21:39 e4ns 阅读(30) 评论(0) 推荐(0)
摘要: A 笔记本电脑 第一题没啥好说的了 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; set<int> t; pair<int,int> arr[100009]; int main() { ios::sync_with_stdio( 阅读全文
posted @ 2024-07-07 11:26 e4ns 阅读(60) 评论(0) 推荐(0)