poj 2406 还是KMP的简单应用
记住KMP是多计算一位的。其中next[i]为不为自身的最大首尾重复子串长度。
位移j=i-next[i]可以看作是构成字符串s的字串(如果i%j==0,存在这样的构成),相应的重复次数也就是n/d。
a b c d *
next:-1 0 0 0 0 这时j=i-next[i]; 结果是j==i;于是得到i/j=1.
a b c a *
next:-1 0 0 0 1 这时j=i-next[i]; 结果是i%j!=0.但是结果还是1。所以这题要考虑如果i%j!=0时也要输出1.即自身。这只是字串等于自身的一种情况。上面的那种情况也是一种
#include <iostream>#include <fstream>#include <string.h> using namespace std; #define N 1000001int next[N]; void get_next(char *s){int i=0,j=-1,len=strlen(s); next[i]=j;while(i<len) {while(j>=0 && s[i]!=s[j]) j=next[j]; i++; j++; next[i]=j; }} int main(){char str[N];int i,j; freopen("acm.txt","r",stdin);while(scanf("%s",str)!=EOF && str[0]!='.') { get_next(str); i=strlen(str); j=i-next[i];if(i%j==0) printf("%d\n",i/j);else printf("1\n"); } return 0;}
转载于:https://www.cnblogs.com/Jason-Damon/archive/2012/04/04/2431819.html
poj 2406 还是KMP的简单应用相关推荐
- ( KMP 求循环节的个数)Power Strings -- poj -- 2406
链接: http://poj.org/problem?id=2406 Power Strings Time Limit:3000MS Memory Limit:65536KB 64bi ...
- poj(2406) kmp
题目链接:https://vjudge.net/problem/POJ-2406 kmp学习:https://blog.csdn.net/starstar1992/article/details/54 ...
- POJ 2406 Power Strings (KMP) kmp循环节
版权声明:本文为博主原创文章,未经博主允许不得转载. Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions ...
- 【POJ - 2406】Power Strings (KMP,最小循环节)
题干: Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc ...
- sdut2772 KMP的简单应用
KMP简单应用 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定两个字符串string1和string2,判断string2是 ...
- poj 3461 Oulipo (KMP)
http://poj.org/problem?id=3461 基础KMP, 要注意一次查找完成后,到下一可查找处继续匹配,这样才能保证得到最终个数. code: #include<cstdio& ...
- POJ - 3461 (kmp)
题目链接:http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissio ...
- 字符串哈希 - POJ - 2406 字符串的循环周期
题目链接:http://poj.org/problem?id=2406 题目大意:如果a="123", 那么a^2="123123", a^3=12312312 ...
- POJ 1979 Red and Black (简单dfs)
题目: 简单dfs,没什么好说的 代码: #include <iostream> using namespace std; typedef long long ll; #define IN ...
最新文章
- linux rm 提示io异常,Hadoop异常 java.io.IOException: Job status not available
- IOS8中SWIFT 弹出框的显示
- starGAN原理代码分析
- IntelliJ IDEA上操作GitHub
- 转载:python pyppeteer手动、离线安装 chromium
- redis入门demo
- java初学课程_作为java新手应该学习什么课程
- 单张表超过30个字段_拉链表
- java种子填充_种子填充实例运行出问题
- Magento 显示下拉货币 How to add Currency selector to Magento’s header
- android 呼吸灯权限_小米新机搭载炫彩呼吸灯酷到爆;三星顶级旗舰Note 10正式官宣...
- java系列6:封装
- 从零开始学 Java - Spring MVC 实现跨域资源 CORS 请求
- c语言蝴蝶图案代码,通达信指标公式,临界点蝴蝶图案出现,暴涨趋势出现(附源码)...
- 中国接线端子行业研究与投资前景研究报告(2022版)
- 演示面阵激光雷达的工作原理
- 云计算技术与应用赛项赛题库
- 漫反射与高光反射总结
- python基础知识点大全
- c语言 /= 和 *= 是什么意思?
热门文章
- munin mysql_munin 监控 mysql 2种方法
- se是什么职位_女皇大学PSE&SE 独家解析!
- hasp 加密 java_加密软件HASP的使用说明
- java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...
- 互联网产品生命周期_我市扎实推进全生命周期公共法律服务产品研发
- bert 中文 代码 谷歌_ELECTRA中文预训练模型开源,110个参数,性能媲美BERT
- lamp 安装 mysql_linux lamp之离线安装mysql
- java htmlparser 使用教程_HTMLParser使用详解(1)
- mysql 目录更改 php,Linux下更改MySQL目录
- ❤️六W字《计算机基础知识》(五)(建议收藏)❤️