09 2017 档案

摘要:对于重复次数,如果确定了重复子串的长度len,那重复次数k=lcp(start,start+len)/len+1。而暴力枚举start和len的复杂度是O(n^2),不能接受。而有一个规律,若我们只枚举len的整数倍作为起始,如果将它向前移动小于len位可以构成重复次数更长的串,那么那个位置p=st 阅读全文
posted @ 2017-09-21 18:48 Luke_Ye 阅读(257) 评论(0) 推荐(0)
摘要:最少出现K次我们可以用Height数组的lcp来得出,而恰好出现K次,我们只要除去最少出现K+1次的lcp即可。 阅读全文
posted @ 2017-09-19 18:56 Luke_Ye 阅读(178) 评论(0) 推荐(0)
摘要:把s1,s2拼接,求Height。相邻的Height判断左右串起点是否在两个串中,另外对Height和s1.length()-SA[i-1]取min。 阅读全文
posted @ 2017-09-19 18:53 Luke_Ye 阅读(179) 评论(0) 推荐(0)
摘要:后缀数组不能直接通过Height得出不重合的公共串。我们可以二分k值,这样连续的Height只要都大于等于k,那他们互相间的k值都大于等于k。每个这样的连续区间查找SA的最大最小值,做差判断是否重合(考虑common prefix=k)。 阅读全文
posted @ 2017-09-19 18:33 Luke_Ye 阅读(231) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6198 F0=0,F1=1的斐波那契数列。 给定K,问最小的不能被k个数组合而成的数是什么。 赛后才突然醒悟,只要间隔着取k+1个数,显然根据斐波那契数列规律是不存在把其中两个数相加的结果又出现在数列中的情况(有特 阅读全文
posted @ 2017-09-10 21:57 Luke_Ye 阅读(163) 评论(0) 推荐(0)
摘要:const LL N = 100005; LL num[N]; LL dp[N]; LL go(LL l, LL r, LL k) { for (; r >= l; r--) if (dp[r] = 0) { if (r - l > 1; if (dp[mid] > k) r = mid; e... 阅读全文
posted @ 2017-09-10 21:47 Luke_Ye 阅读(148) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4507 求[L,R]中不满足任意条件的数的平方和mod 1e9+7。 条件: 1、整数中某一位是7;2、整数的每一位加起来的和是7的整数倍;3、这个整数是7的整数倍; 首先想到数位DP,我们看下如何维护。 最基本的 阅读全文
posted @ 2017-09-07 23:17 Luke_Ye 阅读(346) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3652 求解所有含有13且被13整除的数。 思路:除了数位DP基本的两维,还需要维护数字头部情况,此外遇到整除问题,我们还需要维护余数。 阅读全文
posted @ 2017-09-07 16:06 Luke_Ye 阅读(130) 评论(0) 推荐(0)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位DP的思想时预处理以x开头长度为len的数(例如 x000~x999)的所有情况。给出一个数,可以在log10(n)的复杂度下完成分解。 阅读全文
posted @ 2017-09-07 16:02 Luke_Ye 阅读(234) 评论(0) 推荐(0)
摘要:hash[i]=(hash[i-1]*p+idx(s[i]))%mod p和mod取不同的较大的素数 阅读全文
posted @ 2017-09-03 16:59 Luke_Ye 阅读(130) 评论(0) 推荐(0)
摘要:http://codeforces.com/problemset/problem/848/B 给定一个二维坐标系,点从横轴或纵轴垂直于发射的坐标轴射入(0,0)-(w,h)的矩形空间。给出点发射的坐标轴,位置,延迟时间,发生碰撞则交换方向。求最后每个点的射出位置。 首先我们观察能得出两个结论,1. 阅读全文
posted @ 2017-09-03 14:40 Luke_Ye 阅读(347) 评论(0) 推荐(0)