摘要: 这个问题在于理解son这个数组,首先字典树可以理解为一层一层的, 为什么这个数组是son[N][26], 最长长度的字符串有N个字母,每个字母有26种可能所以就是这样。(其实一个字符串比如abc,可以算三种情况, a, ab, abc。) 比如这个: son[0]就理解为第一层,也就是字符串第一个字 阅读全文
posted @ 2022-09-16 23:43 天然气之子 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 分为两步, 第一步先求出next数组, next数组的作用 //next[i] = j 的意思是 p[1,j] = p[i - j + 1, i],也就是前后缀相同的最长长度 比如 abbab 这个的 next[5]=2 abbab这个前后缀最长相同长度为2 // 也就是 ab=ab //next[ 阅读全文
posted @ 2022-09-14 16:29 天然气之子 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 如果用普通窗口 每一次往右边移动一格(时间n)进行一次判断(时间k)需要 nk 的时间复杂度 用排序好的窗口, 比如一开始输入 8 3 1 3 -1 -3 5 3 6 7 先是 1 这个数字再窗口内, 然后 由于第二个数字 3比1要小所以不记录队列中 再是 -1 这个数字 比1小所以记录 此时队列为 阅读全文
posted @ 2022-09-12 17:01 天然气之子 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 注意 >> 的运算顺序在加减之后 // 找到所有要查询的和插入的位置,把这些位置去重排序,然后把他们映射为一个新的数组,这个数组的值就是哪些位置上有的值然后再用前缀和问题 #include<bits/stdc++.h> using namespace std; const int N = 30001 阅读全文
posted @ 2022-08-31 21:41 天然气之子 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 记录每个数字出现次数,如果又多次出现就从当前位置重新开始计算长度 #include <iostream> using namespace std; const int N = 100010; int n; int q[N],s[N]; int main() { scanf("%d",&n); for 阅读全文
posted @ 2022-08-26 23:59 天然气之子 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 由于定义 b[i][j] = a[i][j] + a[i - 1][j - 1] - a[i - 1][j] - a[i][j - 1], b数组的值这样求, 那么 a[i][j] = a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1] + b[i][j]; 每次 阅读全文
posted @ 2022-08-24 23:45 天然气之子 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 求左上矩阵的和 #include<bits/stdc++.h> using namespace std; int main() { #ifdef ONLINE_JUDGE #else freopen("D:\\Hello world\\编程输入2\\in.txt", "r", stdin); #en 阅读全文
posted @ 2022-08-24 19:27 天然气之子 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 直接求复杂度太高 //常规时间复杂度为 n*m // #include<bits/stdc++.h> // using namespace std; // int main() { // int n, m; // cin >> n >> m; // vector<int> nums; // for 阅读全文
posted @ 2022-08-24 19:24 天然气之子 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 二分法的模板 bool check(int x) {/* ... */} // 检查x是否满足某种性质 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: int bsearch_1(int l, int r) { while (l < r) { int mid = l 阅读全文
posted @ 2022-08-13 23:01 天然气之子 阅读(198) 评论(0) 推荐(0) 编辑
摘要: https://sp18.datastructur.es/materials/exam/cs61b-sp18-mt1.pdf 1.Static Data a. public static void main(String[] args) { String a = "alice"; String b 阅读全文
posted @ 2022-06-10 14:40 天然气之子 阅读(35) 评论(0) 推荐(0) 编辑