BZOJ1511: [POI2006]OKR-Periods of Words

1511: [POI2006]OKR-Periods of Words

Time Limit: 5 Sec  Memory Limit: 64 MB
Submit: 174  Solved: 92
[Submit][Status]

Description


个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, 使得 A = PB. 如果 P A
并且 P 不是一个空串,那么我们说 P 是A的一个proper前缀.
定义Q 是A的周期, 当且仅当Q是A的一个proper 前缀并且A是QQ的前缀(不一定要是proper前缀). 比如串 abab 和
ababab 都是串abababa的周期. 串A的最大周期就是它最长的一个周期或者是一个空串(当A没有周期的时候), 比如说,
ababab的最大周期是abab. 串abc的最大周期是空串. 给出一个串,求出它所有前缀的最大周期长度之和.

Input

第一行一个整数 k ( 1 k 1 000 000) 表示串的长度. 接下来一行表示给出的串.

Output

输出一个整数表示它所有前缀的最大周期长度之和.

Sample Input

8
babababa

Sample Output

24

HINT

Source

题解:

想了一会儿发现最大周期其实就是求前缀的len--最短的前缀==后缀的len

正确性显然,然后就kmp搞定了。

代码:

 1 #include<cstdio>
 2
 3 #include<cstdlib>
 4
 5 #include<cmath>
 6
 7 #include<cstring>
 8
 9 #include<algorithm>
10
11 #include<iostream>
12
13 #include<vector>
14
15 #include<map>
16
17 #include<set>
18
19 #include<queue>
20
21 #include<string>
22
23 #define inf 1000000000
24
25 #define maxn 1000000+5
26
27 #define maxm 500+100
28
29 #define eps 1e-10
30
31 #define ll long long
32
33 #define pa pair<int,int>
34
35 #define for0(i,n) for(int i=0;i<=(n);i++)
36
37 #define for1(i,n) for(int i=1;i<=(n);i++)
38
39 #define for2(i,x,y) for(int i=(x);i<=(y);i++)
40
41 #define for3(i,x,y) for(int i=(x);i>=(y);i--)
42
43 #define mod 1000000007
44
45 using namespace std;
46
47 inline int read()
48
49 {
50
51     int x=0,f=1;char ch=getchar();
52
53     while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();}
54
55     while(ch>=‘0‘&&ch<=‘9‘){x=10*x+ch-‘0‘;ch=getchar();}
56
57     return x*f;
58
59 }
60 int n,next[maxn];
61 ll ans;
62 char s[maxn];
63
64 int main()
65
66 {
67
68     freopen("input.txt","r",stdin);
69
70     freopen("output.txt","w",stdout);
71
72     n=read();
73     scanf("%s",s+1);
74     for(int i=2,j=0;i<=n;i++)
75     {
76         while(j&&s[j+1]!=s[i])j=next[j];
77         if(s[j+1]==s[i])j++;
78         next[i]=j;
79     }
80     for1(i,n)if(next[next[i]]!=0)next[i]=next[next[i]];
81     for1(i,n)if(next[i])ans+=(ll)(i-next[i]);
82     printf("%lld\n",ans);
83
84     return 0;
85
86 }

时间: 2024-08-13 20:02:25

BZOJ1511: [POI2006]OKR-Periods of Words的相关文章

【bzoj1511】[POI2006]OKR-Periods of Words KMP-next数组

原文地址:http://www.cnblogs.com/GXZlegend/p/6827027.html 题目描述 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, 使得 A = PB. 如果 P A 并且 P 不是一个空串,那么我们说 P 是A的一个proper前缀. 定义Q 是A的周期, 当且仅当Q是A的一个proper 前缀并且A是QQ的前缀(不一定要是proper前缀). 比如串 abab 和 ababab 都是串abababa

Leangoo Talk第一期——Scrum与OKR融合实践

主题:Scrum 和OKR融合实践 概述: OKR全称是Objectives and Key Results,即目标与关键成果,是一套定义和跟踪目标及其完成情况的管理工具和方法. 1999年 Intel公司发明了该方法,后来被 John Doer推广到Google, LinkedIn等高科技公司并逐步流传开来,现在广泛应用于IT.风险投资.游戏.创意等行业. Scrum是运用非常广泛的敏捷开发框架,Scrum十分强调小团队协作.团队自组织. 那么,在Scrum敏捷环境下应该如何定义和管理团队目标

万恶的KPI、新兴的OKR及让人纠结的程序员考核

最近两天在研究研发部门如何进行绩效管理(其实一直都在思考,关注,实践,总感觉无从下手,也想求助咨询公司,无奈囊中羞涩).查了两天的资料,主要的方向是KPI,OKR,谷歌等互联网公司的考核方法.这里做个简单的整理与总结,记录一些自己思考的结论. 1.KPI万恶论 说KPI毁了索尼都是扯淡,很多大公司如BAT都在用KPI,发展有目共睹,虽然网上曝出各种弊端,但是没有KPI可能更差.企业的生老病死也是自然规律,更多是由外部的大趋势决定的,每次企业大规模的死亡与淘汰都是整个时代在飞速发展而进行正常的新陈

bzoj1510[POI2006]Kra-The Disks*

bzoj1510[POI2006]Kra-The Disks 题意: 一个瓶子有n个节,每个节有一个宽度.现在要从上往下扔m个盘子,如果盘子的下一个位置宽度比该盘子的宽度小则盘子会停在这个位置.问最后一个盘子会停在那个位置.n,m≤300000. 题解: 首先利用单调栈去掉那些没用的节,之后对于每个盘子,二分大于等于它宽度的第一个节,尝试它能否再往下掉到无用的节,具体看代码. 代码: 1 #include <cstdio> 2 #include <cstring> 3 #inclu

OKR详解及其实施

这阵子大家一直在讨论Google的绩效考核方法OKR,我们发现很多文章和说法存在错误和误导,现将其来龙去脉,操作步骤,操作技巧阐述如下,供大家参考. OKR全称是Objectives and Key Results即目标与关键成果法,OKR是一套定义和跟踪目标及其完成情况的管理工具和方法: 1999年 Intel公司发明了这种方法,后来被 John Doerr推广到 Intel和Oracle Google,LinkedIn等逐步流传起来,现在广泛应用于IT.风险投资.游戏.创意等以项目为主要经营

OKR 和 KPI 的适用场景

今天和朋友聊到在公司执行 OKR,KPI的效果.很多人觉得效果一般.我觉得OKR也好,KPI也好,都是管理手段的一种,是一种工具.工具本身没有好坏,关键是要了解其适用场景,把它用好.一些公司应用下来效果不好,往往是公司希望解决的问题,并不是OKR和KPI擅长解决的,或是在使用OKR和KPI时,一些细节没有注意,没有把工具用好,从而导致效果不佳.这里分享一下我对OKR,KPI的理解,它们各自的适用场景和使用时的注意点. 首先OKR和KPI是两种完全不同的管理工具.真正理解了它们的不同,也就了解了它

Size differences of Arctic marine protists between two climate periods—using the paleoecological record to assess the importance of within-species trait variation

ecology and evolution ,个人觉得这个期刊点数虽不高,但属于主流期刊. 文献:Mousing, E. A. et al. Size differences of Arctic marine protists between two climate periods—using the paleoecological record to assess the importance of within-species trait variation. Ecol Evol 7, 3–

技术团队与OKR

标题是在我思绪乱飞,文不及意的时候改的,原标题是命题作文"CTO的最后一课 第一季毕业设计"的一部分,<技术团队绩效考核机制>,思绪飞完,发现这都是自己的意淫,作为一个基层员工,除了自我管理就是被管理,谈技术团队的管理,未免太不切实际,但是恰是因为自己是被管理的对象,所以在听完CTO训练营整整一季的课后,我想说,老师,我有话要说~ 在思考如何激励时,自然想到了CTO讲师于斌平<技术团队如何做绩效管理>中的论述,于斌平老师有着10年以上500人以上的团队管理经验的

bzoj 1513 [POI2006]Tet-Tetris 3D(二维线段树)

1513: [POI2006]Tet-Tetris 3D Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 540  Solved: 175[Submit][Status] Description Task: Tetris 3D "Tetris" 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即停止. 作者想改变一下游戏的目的使得它更大众化,在新游戏中你将