bzoj1355——2016——3——15
2024-08-26 06:39:18
传送门: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
cabcabca
Sample Output
3
HINT
对于样例,我们可以利用"abc"不断自我连接得到"abcabcabc",读入的cabcabca,是它的子串
Source
题解:这题就是KMP next数组的应用啦(水),最小值就是n-next[n](很容易想吧,因为可行解集为{n-next[n],n-next[next[n]]....)所以最小解显然为n-next[n];
#include<iostream>
#include<cstring>
#include<cstdio>
#define inf 0x7fffffff
int n,ans;
int next[];
char s[];
using namespace std;
int main()
{
scanf("%d",&n);
scanf("%s",s+);
ans=;
int fix=;
for (int i=; i<=n; i++)
{
while (fix && s[fix+]!=s[i]) fix=next[fix];
if (s[fix+]==s[i]) fix++;
next[i]=fix;
}
printf("%d\n",n-next[n]);
}
最新文章
- MyCat源码分析系列之——SQL下发
- wpf 自定义圆形按钮
- u3d_shader_surface_shader_5
- C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?
- Android--监听ListView滚动到最底部
- Python:使用threading模块实现多线程编程
- Shapely介绍及用户手册
- Windows下搭建objective C开发环境
- Java 浅拷贝和深拷贝的理解和实现方式
- MYSQL之索引原理与慢查询优化
- 如何在linux下使用sudo命令不用输入密码
- flutter -------- GridView的使用
- Mysql报错[Warning] TIMESTAMP with implicit DEFAULT value is deprecated和Buffered warning: Changed limits
- java socket / No buffer space available
- 洛谷P4389 付公主的背包 [生成函数,NTT]
- 如何从零安装Mysql
- HTTP协议(一)[草稿版]
- C++中前置声明介绍
- 揭开webRTC媒体服务器的神秘面纱——WebRTC媒体服务器&;开源项目介绍
- Golang Vendor 包管理工具 glide 使用教程
热门文章
- ViewPager滑动标签-PagerSlidingTabStrip的使用
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- 关于MyEclipse6.5 总是弹出 Update Progress(xx-xx-xx时间)的问题
- js 切换图片
- Python 函数简介之一
- 神经网络joone_engin模式识别示范,eclipse
- HDU1251-统计难题(字典树)
- 事件g_Events
- 【HighCharts系列教程】十、图例属性——legend
- 字符串的妙用之拼出花样的sql