HDU1358:Period
第一次做KMP。还没有理解透。
在自己写一遍时没有让next[0]初始化为-1。
还有就是next应该是c++中的关键字,提交后编译错误。
From:
http://blog.csdn.net/libin56842/article/details/8498391
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include "ctype.h"
#include "cstdlib"
#include<cmath>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <vector>
using namespace std; char c[1000000];
int ne[1000000]; void cal(){
int i=0,j=-1;
ne[0]=-1;
while(c[i]){
if(c[i]==c[j]||j==-1){
++i;
++j;
ne[i]=j;
}
else{
j=ne[j];
}
}
}
void kmp(){
for(int i=2;c[i-1];++i)
{
int t=i-ne[i];
if(i%t==0 && i/t>1){
printf("%d %d\n",i,i/t);
}
}
}
int main()
{
int i,j,k,n,m,a,b,l;
k=1;
while(cin>>b,b){
scanf("%s",c);
printf("Test case #%d\n",k++);
cal();
kmp();
printf("\n");
} return 0;
}
HDU1358:Period的更多相关文章
- POJ 1961:Period
Period Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 14280 Accepted: 6773 Description F ...
- POJ1961:Period
浅谈\(KMP\):https://www.cnblogs.com/AKMer/p/10438148.html 题目传送门:http://poj.org/problem?id=1961 根据研究发现, ...
- UVALive - 3026:Period
用KMP里面的next数组即可,原理就是next数组的原理 #include<cstdio> #include<cstdlib> #include<algorithm&g ...
- 【暑假】[实用数据结构]UVAlive 3026 Period
UVAlive 3026 Period 题目: Period Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld ...
- R语言学习 第十一篇:日期和时间
R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...
- 【源码解读】EOS测试插件:txn_test_gen_plugin.cpp
本文内容本属于<[精解]EOS TPS 多维实测>的内容,但由于在编写时篇幅过长,所以我决定将这一部分单独成文撰写,以便于理解. 关键字:eos, txn_test_gen_plugin, ...
- Java8 Period.between方法坑及注意事项
在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题. @Test public void test1(){ LocalDate from = LocalD ...
- java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal
一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...
- Java学习 时间类 Period类与Duration类 / LocalDate类与Instant类 用法详解
前言 java 8 中引入的两个与日期相关的新类:Period 和 Duration.两个类看表示时间量或两个日期之间的差,两者之间的差异为:Period基于日期值,而Duration基于时间值.他们 ...
随机推荐
- jQuery对象入门级介绍
你是否曾经见过像 $(".cta").click(function(){})这样的JavaScrip代码?或许你还会思考下 $('#X') 是什么,如果看到这些你都觉得摸不着头脑 ...
- Html5游戏开发开始前的一些数学基础
计算一个向量的值 var vectorMagnitude = Math.sqrt(Math.pow(vector.x, 2) + Math.pow(vector.y, 2)); 单位向量 var ve ...
- .cmd文件不小心管理记事本打开的恢复
比如不小心将.cmd文件关联成用记事本打开了,此时须要删除注冊表: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explor ...
- 2013 US Open Award Ceremoney
http://v.youku.com/v_show/id_XNjA3MjU3MzY4.html?firsttime=0 Singapore how about another hand tr ...
- poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
http://poj.org/problem?id=1222 题意:给一个确定的5*6放入矩阵.每一个格子都有一个开关和一盏灯,0表示灯没亮,1表示灯亮着.让你输出一个5*6的矩阵ans[i][j], ...
- vs2012运行c语言出现:无法查找或打开 PDB 文件
1.点 调试2.然后 选项和设置3.右边勾上 启用源服务器支持4.左边点 符号5.把微软符号服务器勾6.运行的时候等一下 莫慌!!7.问题解决
- 面试感悟----一名3年工作经验的程序员应该具备的技能 JAVA 必读书
http://www.cnblogs.com/xrq730/p/5260294.html#3470685 http://www.cnblogs.com/xrq730/p/4994545.html
- javascript冷知识
本人很少写博客,所以文笔很不好,如果解释的不够清楚的,欢迎点评 1.+号(一元加操作符): 如果放在数值前的话,对数值不会产生任何影响,不过放在其他的数据类型前面的话,就等于调用number()将他转 ...
- CALayer实现点击屏幕放大或者缩小的一个圆
#import "ViewController.h" #define WIDTH 50 @interface ViewController () @end @implementat ...
- [Java] final的意义
1.如果一个数据既是static又是final,那么它会拥有一块无法改变的存储空间. 2.final data: 当final用于基本数据类型时,final让其值(value)保持不变,但是当用于ob ...