摘要:
多边形的内核可以理解为:在多边形找到一块区域,使这块区域中的任何一个点都能够和多边形上的任意一点相连而不受到多边形上其他边的阻挡也可以抽象的理解为在这块区域中任意位置放一个旋转摄像头,这个摄像头可以监控多边形的整个区域多边形内核是否存在可以利用半平面交的思想去求解将多边形上的每一条边作为逆时针顺序的... 阅读全文
摘要:
题目大意 就是求一个最小矩形覆盖,逆时针输出其上面的点这里可以看出,那个最小的矩形覆盖必然有一条边经过其中凸包上的两个点,另外三条边必然至少经过其中一个点,而这样的每一个点逆时针走一遍都满足单调性所以可以利用旋转卡壳的思想找到这样的三个点以每一条边作为基础,循环n次得到n个这样的矩形,找到其中面积最... 阅读全文
摘要:
简单的旋转卡壳题目以每一条边作为基础,找到那个最远的对踵点,计算所有对踵点的点对距离这里求的是距离的平方,所有过程都是int即可 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using names... 阅读全文
摘要:
题目大意:给定两个字符串,在第一个字符串中找到一个最大前缀作为第二个字符串的后缀 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 1... 阅读全文
摘要:
题目大意:找到所有的可组成连续字符串相连的位置,和循环字符串的个数#include #include #include #include #include #include #include #include using namespace std;#define ll long long#defi... 阅读全文
摘要:
题目大意:找到字符串中所有和前缀字符串相同的子串的个数对于这种前缀的问题,通常通过扩展kmp来解决其实吧这是我第一次做扩展kmp的题目,原来确实看过这个概念,今天突然做到,所以这个扩展kmp的模板是做到这道题直接copy的这里用扩展kmp很好解决问题,_next[i],表示第i位开始所能匹配到的最大... 阅读全文
摘要:
题目大意:对于一个给定字符串,找到其所有不同的子串中排第k小的子串先构建后缀自动机,然后我们可以将整个后缀自动机看做是一个DAG图,那么我们先进行拓扑排序得到 *b[N]对于每个节点记录一个sc值,表示当前节点往下走可以得到不同的字符串的个数然后从后往前,每次到达一个节点,当前节点sc赋1,然后每个... 阅读全文
摘要:
题目大意:给定一个字符串,接下来再给n个字符串,求原字符串中含有多少个当前给定字符串的循环同构体的字符串的个数以初始字符串构建后缀自动机,在自动机上前进的时候,比如当前需要匹配的字符串为aba,到达某个状态点S我们所希望知道的所有aba出现的次数,因为aba最终到达的是点S,其实可以理解为整个后缀自... 阅读全文
摘要:
题目大意:给定一个基础字符串,再给多个字符串,求出基础字符串中能得到的不一样的子串的个数未出现在后面多个字符串当中这里以基础子串构建后缀自动机是没问题的后面的多个子串不断在后缀自动机上进行匹配,每次到达一个状态点,就要更新当前点所能达到的其他字符串抵达最大长度mx,那么未能匹配的长度就是cur->l... 阅读全文
摘要:
题目大意:给定一个长度l - p->f->l ),也就是以当前点为最后节点所能得到的与之前不重复的子串的个数那么这个问题就很好解决了,共2000个位置,以每一个位置为起点构建一次后缀自动机,一直构建到最后一个字符,过程中不断记录所能得到的子串个数把这个个数动态保存到f[][]数组中那么打好了表,最后... 阅读全文