摘要: 题目传送门题意:训练指南P228分析:照着书上的做法,把点插入后把它后面不占优势的点删除,S.size ()就是优势的人数,时间复杂度O (nlogn)#include using namespace std;struct Point { int a, b; Point() {} ... 阅读全文
posted @ 2016-01-12 11:28 Running_Time 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题意:训练指南P225 分析:二分寻找长度,用hash值来比较长度为L的字串是否相等。 后缀数组也可以求解,具体就是二分答案,height数组分组判断是否满足存在题意的解,并使最优。(m=1时特判处理) 阅读全文
posted @ 2016-01-12 11:25 Running_Time 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P218分析:一行一行的插入,一行一行的匹配,当匹配成功时将对应子矩阵的左上角位置cnt[r][c]++;然后统计 cnt[r][c] == x 的数量#include using namespace std;const int N = 1e3 + 5;const int N... 阅读全文
posted @ 2016-01-12 11:20 Running_Time 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P217分析:没有模板串也就是在自动机上走L步,不走到val[u] == v的节点的概率PS:边读边insert WA了,有毒啊!#include using namespace std;const int K = 20 + 5;const int L = 100 + 5;c... 阅读全文
posted @ 2016-01-12 11:16 Running_Time 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:训练指南P216分析:求出现最多次数的字串,那么对每个字串映射id,cnt记录次数求最大就可以了。#include using namespace std;const int N = 150 + 5;const int NODE = N * 70;const int LEN = 1e... 阅读全文
posted @ 2016-01-12 11:07 Running_Time 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目传送门题意:(训练指南P213) 求每个前缀的最短循环节分析:利用失配函数的性质,如果i % (i - fail[i]) == 0,那么正好错位移动一个循环节长度。#include using namespace std;const int N = 1e6 + 5;char str[N];int... 阅读全文
posted @ 2016-01-12 11:00 Running_Time 阅读(541) 评论(0) 推荐(0) 编辑