题目链接 题意:给定一个区间[m, n],假设 小于m的与m互质的数的个数为 s(m),小于m+1的与m+1互质的数的个数为 s(m+1),……,小于n的与n互质的数的个数为 s(n)。如果 m == n,输出 a = s(m)*s(m),否则,输出 a = s(m)*s(m) + s(m+1)*s Read More
题目链接 题意:求一个数组的回文串且满足条件为三角形,从小到大然后到小。 思路:在马拉车算法寻找右边len数组时添加判断条件即可。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using name Read More
题目链接 题意:就是要找出所有循环节的位置 思路:利用next失配数组实现跳转。长度为len-next(len)的前缀显然是符合题意的。 #include<stdio.h> #include<string.h> #include<algorithm> #define ll long long usi Read More
题目链接 题意:给你一个字符串问切一刀的最大价值。会给出26个字母的价值,而如果你切出来的一个字符串是回文串,则价值为回文串所有字母的和,否则为0.求最大价值。值得注意的是,字母价值可能为负数。 思路:可以想到马拉车算法求出P数组,然后暴力枚举。先预处理出字母价值的前缀和然后再去暴力。暴力过程中还是 Read More
题目链接 题意:给s个字符串,m个关系,n个字符串,当两个字符串满足m关系之一且相邻则在n个字符串中可交换,求n的最小。 思路:因为对于如果不满足关系的两个字符串a,b,若a在b前面,则a永远在b前面。所以可以利用不能交换的字符串做一个图,对其的拓扑序则为最后答案,因为当前面不能交换的先出队,后面的 Read More