摘要: ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220512202452474-22258941.png) ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220512203005011-2005765599.png) ![](https://im 阅读全文
posted @ 2022-05-12 22:54 牛佳文 阅读(29) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220511213451822-1463750766.png) ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220511213903792-392853452.png) ![](https://i 阅读全文
posted @ 2022-05-11 23:43 牛佳文 阅读(27) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220510224749636-849628606.png) ![](https://img2022.cnblogs.com/blog/2511085/202205/2511085-20220510224958135-283740792.png) ![](https://im 阅读全文
posted @ 2022-05-11 00:04 牛佳文 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 固定回文中心才可以二分回文半径,其他不能二分 阅读全文
posted @ 2022-05-10 21:47 牛佳文 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 天天爱跑步 #include<bits/stdc++.h> using namespace std; const int N = 3e5+10; int h[N], ne[2 * N], e[2 * N], idx; void add(int a, int b){ e[idx] = b, ne[id 阅读全文
posted @ 2022-04-30 16:24 牛佳文 阅读(38) 评论(0) 推荐(0) 编辑
摘要: // 注意:修改和原始数据同时需要离线如何处理 // add和del函数认真思考 #include<bits/stdc++.h> using namespace std; const int N = 2e5+10, len = 2100; int n, m; int tmp = 0; array<i 阅读全文
posted @ 2022-04-29 19:21 牛佳文 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 基础定义 阅读全文
posted @ 2022-04-29 12:07 牛佳文 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 后缀数组 二分字符串比较字典序:? 阅读全文
posted @ 2022-04-28 23:22 牛佳文 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 将(i, a[i])当作点,对a[i]这个维度扫描,在i这个维度上面建立扫描线 #include<bits/stdc++.h> using namespace std; const int N = 2e5+10; array<int, 4> que[N]; array<int, 2> a[N]; / 阅读全文
posted @ 2022-04-27 13:08 牛佳文 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 例题1 #include<bits/stdc++.h> using namespace std; const int N = 2e5+10; typedef long long LL; const int M = 500; LL tag[M + 5][M + 5]; LL val[N]; int m 阅读全文
posted @ 2022-04-26 22:59 牛佳文 阅读(48) 评论(0) 推荐(0) 编辑