上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 30 下一页
摘要: 1. kmp 相当于往前求出一段字符信息,使得 这段字符信息和前缀相等。 void getnext(){ int k = -1, j = 0; nx[0] = -1; while(j < m){ if(k == -1 || b[j] == b[k]) nx[++j] = ++k; else k = 阅读全文
posted @ 2019-05-02 16:26 Schenker 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题解: id[ i ][ j ] 代表的是在第j个位置之后的第i个字符的位置在哪里。 dp[ i ][ j ][ k ] 代表的是 第一个串匹配到第i个位置, 第二个串匹配到第j个位置, 第三个串匹配到第k个位置之后,最后面一个字符的位置在哪里。 如果题目只询问一次,那么应该很容易想到n 阅读全文
posted @ 2019-04-30 16:51 Schenker 阅读(422) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL long long #define 阅读全文
posted @ 2019-04-23 17:01 Schenker 阅读(279) 评论(0) 推荐(0) 编辑
摘要: const int N = 500; const int M = 1e5; int head[N], to[M], nt[M], link[M], tot; int vis[N]; int Vcnt; int n, m; void add(int u, int v){ to[tot] = v; nt 阅读全文
posted @ 2019-04-14 17:39 Schenker 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 二分答案。 对于每次二分后的答案来说, 先倍增序列,通过 two point 来找到 以每个点为起点的最优的符合答案的在哪里。 然后可以DFS树去判断他的前k祖先之间的距离是不是大于k。 常数有点大。 在 ID为 WuHongxun 的代码下学会了, 先判断一下最小一段的跨度, 如果跨度 >= n 阅读全文
posted @ 2019-03-29 16:29 Schenker 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题解: 枚举非法对。 如果 ‘a' 和 ’b' 不能相邻的话,那么删除 'a' 'b'之间的字符就是非法操作了。 假设题目给定的字符串为 "acdbe",所以删除cd是非法操作, 因为cd是非法了,所以cde也是非法操作, 也就是说找到所有的非法操作之后往外推,比他多删的状态就一样是非法 阅读全文
posted @ 2019-03-08 15:59 Schenker 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题解: 先注意到一定存在k种颜色,切成k个块, 然后要求每个块内的颜色都一样,所以可以发现同一种颜色一定在同一个块内,故任意2个相同颜色的最短路劲上的点的颜色都是该颜色。 我们可以先把任意相同颜色点对的路径上的点的颜色都染成这个颜色。 如果发现存在一个点是已经有颜色的话,那么答案一定为0 阅读全文
posted @ 2019-03-02 18:10 Schenker 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 从杨哥哪里偷的板子, 存一下。 #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL lo 阅读全文
posted @ 2019-03-02 13:50 Schenker 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 已封装: class Left_Heap{ public: static const int Mn = N; int ls[Mn], rs[Mn], rt[Mn], val[Mn], pos[Mn], dis[Mn]; int n; void init(){ for(int i = 1; i <= 阅读全文
posted @ 2019-03-01 17:28 Schenker 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 代码: /* code by: zstu wxk time: 2019/03/01 */ #include<bits/stdc++.h> using namespace std; #define Fopen freopen("testdata.in","r",stdin); freope 阅读全文
posted @ 2019-03-01 17:12 Schenker 阅读(178) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 30 下一页