Codeforces ZeptoLab CodeRush 2015 E跳跃表题Dkmp难度适中,如何高效解题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计355个文字,预计阅读时间需要2分钟。
题目描述:给定一个数n,将其构成的圆上的点标记为1和n相邻。然后给定一个数b,将其构成的圆上的点标记为1和n相邻。再给定一个数b,求一个不大于b的连续数段,该数段可以组成一个圆上的点序列。要求找出最小的这样的数段。
codeforces.com/contest/526/problem/D想起D题也不错虽然比赛时秒了但是是基于我对KMP的理解的基础上的- -。i-p[i]为从字符串起始位置到当前i位置的循环节就是说di-p[i]每d个字符为一段循环。现在面试题好多想考察KMP起始都能用hash之类的做都不是真正的KMP题。 还有扩展KMP是向后的这个不熟敲不出来只会二分hash多个logn的复杂度。
#include#include#include#include#include#include#include#include#includeusing namespace std;#define mp(x,y) make_pair(x,y)typedef pair per;typedef long long ll;const int MOD 1000000007;const int N 1000005;int pt[NN],a[NN],n,f[NN],cnt[NN];ll d;void got(){ int i,j1; ll sum0; for(i1;i
转:www.cnblogs.com/seen1020/p/4394145.html
本文共计355个文字,预计阅读时间需要2分钟。
题目描述:给定一个数n,将其构成的圆上的点标记为1和n相邻。然后给定一个数b,将其构成的圆上的点标记为1和n相邻。再给定一个数b,求一个不大于b的连续数段,该数段可以组成一个圆上的点序列。要求找出最小的这样的数段。
codeforces.com/contest/526/problem/D想起D题也不错虽然比赛时秒了但是是基于我对KMP的理解的基础上的- -。i-p[i]为从字符串起始位置到当前i位置的循环节就是说di-p[i]每d个字符为一段循环。现在面试题好多想考察KMP起始都能用hash之类的做都不是真正的KMP题。 还有扩展KMP是向后的这个不熟敲不出来只会二分hash多个logn的复杂度。
#include#include#include#include#include#include#include#include#includeusing namespace std;#define mp(x,y) make_pair(x,y)typedef pair per;typedef long long ll;const int MOD 1000000007;const int N 1000005;int pt[NN],a[NN],n,f[NN],cnt[NN];ll d;void got(){ int i,j1; ll sum0; for(i1;i
转:www.cnblogs.com/seen1020/p/4394145.html

