bzoj1355——2016——3——15

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1355

题目大意:

1355: [Baltic2009]Radio Transmission

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 591  Solved: 390
[Submit][Status][Discuss]

Description

给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.

Input

第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成.

Output

输出最短的长度

Sample Input

8
cabcabca

Sample Output

3

HINT

对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串

Source

题解:这题就是KMP next数组的应用啦(水),最小值就是n-next[n](很容易想吧,因为可行解集为{n-next[n],n-next[next[n]]....)所以最小解显然为n-next[n];

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #define inf 0x7fffffff
 5 int n,ans;
 6 int next[1000100];
 7 char s[1000100];
 8 using namespace std;
 9 int main()
10 {
11     scanf("%d",&n);
12     scanf("%s",s+1);
13     ans=0;
14     int fix=0;
15     for (int i=2; i<=n; i++)
16     {
17         while (fix && s[fix+1]!=s[i]) fix=next[fix];
18         if (s[fix+1]==s[i]) fix++;
19         next[i]=fix;
20     }
21     printf("%d\n",n-next[n]);
22 }

时间: 2024-10-13 20:37:11

bzoj1355——2016——3——15的相关文章

2016/02/15 codes

return e.addTest = function(a,b){ if(typeof a == "object") for(var d in a )y(a,d)&& e.addTest(d,a[d]); else{a = a.toLowerCase(); if(e[a]!== c)return e; b = typeof b = "function"?b():b, typeof f != "undefined" &&am

2016.4.15 -关于分离和总结

2016.4.15 科比退役了,祝老大走好,作为铁杆科密的我没有选择在社交媒体上去煽情和感伤,我只知道,我喜欢科比,是因为他的精神,现在的我需要传承老大的“凌晨四点的洛杉矶”,在内心和行动上默默坚持,默默努力,前行.用自己的实际行动证明一切,而不是说说. 研究生阶段唯一的好友,张同学今天突然告诉我他要选择转博了,没有一点惊喜,反而有点悲伤,剩下的路又要一个人走了,或许是上天对我的考察,,,终于想通 了,其实我们每个人都有自己的路要走,每个人都只能陪你走一段路程而已,剩下的路,你一个人走,要坚持,

2016.2.15 四旋翼相关资料

--------2016.2.15--------最近在玩儿四旋翼,所以相关的资料我会贴上来供需要的朋友参考,如果遇到了我们趟过的地雷就能够方便一些. 机架:F450我们之后由于要将NVIDIA的开发板和飞行器连在一起,所以从机架的选择上我们要慎重考虑,之前为了方便选的是F330,但是DJI正版的F330停产了,所以taobao的F330进行测试,经过测试发现F330相当脆弱,机架非常容易在后写撞击中折断,所以如果上面搭载NVIDIA的开发板的话,那么这样开发的成本太高,一旦炸机可能机毁板子亡,

macbook pro 2016 2017 15寸 雷电3 外接显卡 epu 简单教程(不修改UEFI)

雷电3外接显卡效果还不错,但是除了akitio node 其他厂家并不会维护自己的固件来适配新机型,我自己买的mbp 2016 15''就出现了和AORUS Gaming Box 1070不兼容的问题,在引导的时候会在win徽标处转圈卡死,我联系了厂家,客服,给他们打了电话发了邮件,都快变成骚扰了,不过并没有解决问题,得到的回复是问题在解决中,不知道什么时候能解决. 后来在egpu.io上找到了解决方案并尝试成功,效果还不错 https://egpu.io/forums/implementati

2016.8.15

今天是8月15号,又下起了倾盆大雨,还好没被淋住,希望不要有一天会变得一切都那么糟糕,说说今天吧.今天呢又被迫重复的学习了一遍SqlServer,一个不喜欢走 曾经走过路的人我又该怎么去安然的听课,虽然我的数据库语法记得不熟悉但是我还是不愿意去学第二遍,不是不愿意学习,而是一种性格,我知道自己很差但是我也得需要一点性格吧,我也常常的去改变自己,可是想的和做的不一样的,就跟写一个程序思路有了可是写起来寸步难行,真的是执盘流泪啊! 有的时候你忘掉一个人,然后多年以后你再次和她联系你会发现,你们互相已

2016/1/15 面向对象练习 1,创建类 属性 方法 构造方法 2,自定义图书类 3温度单位转换工具

1 public class Factory { 2 3 //属性 4 //品牌 5 String pinpai; 6 //设备 7 int machine; 8 //材料 9 double material; 10 //资金 11 double money; 12 //人工 13 int rengong; 14 //产品 15 int goods; 16 17 void product(int xiaohao1){ 18 machine=xiaohao1; 19 System.out.prin

2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里

使用TP 3.2框架 验证规则也可以写到模型里,但感觉有些麻烦, 一是有时候不同页面验证的方式会不一样, 二是看到这个   Add  事件里的代码,就清楚要接收什么数据,如何验证数据能够在第一眼有个大致了解 ①控制器代码页 1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 5 header("Content-type: text/html; charset=utf-8"); 6 7 class AddCo

牛客之错题(2016.1.15) &amp;&amp; 带头节点与不带头的区别

已知集合A和B的元素分别用不含头结点的单链表存储,函数difference( )用于求解集合A与B的差集,并将结果保存在集合A的单链表中.例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}. 链表结点的结构类型定义如下: struct node   {   int elem;   node* next;   };     void difference(node** LA , node* LB)   {   node *pa

[位运算] [搜索] [递推优化] [计算几何] TEST 2016.7.15

NOIP2014 提高组模拟试题 第一试试题 题目概况: 中文题目名称 合理种植 排队 科技节 源程序文件名 plant.pas/.c/.cpp lineup.pas/.c/.cpp scifest.pas/.c/.cpp 输入文件名 plant.in lineup.in scifest.in 输出文件名 plant.out lineup.out scifest.out 每个测试点时限 1s 1s 1s 测试点数目 10 10 10 每个测试点分值 10 10 10 内存上限 128MB 128