Power Strings

Power Strings C++题解 内存限制: 512 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较。 阅读详情

题目描述:

Given two strings a and b we define ab to be their concatenation. For example, if a = “abc” and b = “def” then ab = “abcdef”. If we think of concatenation as multiplication, exponentiation by a non-negative integer is defined in the normal way: a^0 = “” (the empty string) and a^(n+1) = a*(a^n).

输入:

Each test case is a line of input representing s, a string of printable characters. The length of s will be at least 1 and will not exceed 1 million characters. A line containing a period follows the last test case.

输出:

For each s you should print the largest n such that s = a^n for some string a.

样例输入:

abcd
aaaa
ababab
.

样例输出:

1
4
3

提示:

This problem has huge input, use scanf instead of cin to avoid time limit exceed.

code:

题目大意: 给出一个字符串 问它最多由多少相同的字串组成

KMP:
用next数组求出整个数组的最大前缀,如果整个串是用循环节组成的,那么 n - next[n] 也就是最小循环节,验证最小循环节会被n整出。

#include<stdio.h>
#include<string.h>
const int maxn=1e6+10;
char a[maxn];
int nextt[maxn]; 
int n;
void init()
{
	int i=0,j=-1;
	n=strlen(a);
	nextt[0]=-1;
	int maxx=1;
	while(i<n)
	{
		if(j==-1||a[i]==a[j])
		{
			i++;
			j++;
			nextt[i]=j;
		}
		else j=nextt[j];
	}
}
int main()
{
	while(1)
	{
		scanf("%s",a);
		if(a[0]=='.')break;
		init(); 
		int n=strlen(a);
		if(n%(n-nextt[n])==0)printf("%d\n",n/(n-nextt[n]));
		else printf("1\n");
	}
	return 0;
}

pku acm 2406 Power Strings代码 pku acm 2406 Power Strings代码<br>kmp算法。解题报告:http://blog.youkuaiyun.com/china8848 立即下载

相关推荐

5G物理层基础知识

1、关于RB和RE (1) RB(Resource Block,资源块)频率上连续12个子载波,时域上一个slot(时隙,14个ofdm符号) (2) RE(Resource Element,资源单元)频率上一个子载波,及时域上一个ofdm符号 注意:协议规定,5G每个时隙(非扩展CP)的符号数为14个(扩展CP情况下每个时隙有12个符号),而LTE(非扩展CP)每个时隙的符号数为7个。 简单说:一个12X14的方格,大的整个叫一个RB,每一个小块叫一个RE。另外,一个RE可存放一个调制符号(mo.

qq_39074243的博客 2万+

电源线(power strings)

问题描述 给定两个字符串a和b,我们将a * b定义为它们的串联。例如,如果a =“ abc”和b =“ def”,则a * b =“ abcdef”。如果我们将串联视为乘法,则以非负整数进行乘幂运算的方式为:a ^ 0 =“”(空字符串)和a ^(n + 1)= a *(a ^ n)。 输入项 每个测试用例都是代表s(可打印字符的字符串)的一行输入。s的长度至少为1,并且不超过1百万个字符。最后一个测试用例之后的一行包含一个句点。 输出量 对于每个s,您应该打印最大的n,这样对于某些字符串a,s = a

qq_45828951的博客 310

FT2232HL JTAG下载器硬件设计指南:从引脚配置到电平转换实战

本文详细解析了FT2232HL JTAG下载器的硬件设计要点,包括引脚配置、电平转换电路设计及EEPROM配置技巧。通过实战案例展示如何利用FT2232HL实现高速JTAG通信,解决电平不匹配等常见问题,提升嵌入式开发效率。特别适合需要灵活JTAG接口的硬件工程师参考。

weixin_29194693的博客 256

POJ 2406 KMP 解题报告

Power StringsDescriptionGiven two strings a and b we define a*b to be their concatenation. For example, if a = “abc” and b = “def” then a*b = “abcdef”. If we think of concatenation as multiplication, e

onepointo 1321

Linux-BSP-WIFI驱动移植与调试实战——以RTL8189FS为例

本文以RTL8189FS为例,详细介绍了Linux BSP中WiFi驱动移植与调试的全流程。涵盖硬件原理图分析、内核配置、设备树适配、驱动编译加载及问题排查等关键步骤,提供实用的调试技巧和解决方案,帮助开发者高效完成嵌入式WiFi驱动开发。

moon9的博客 398

【实用教程】使用AlphaFold2进行蛋白质结构在线预测

使用Colab进行简单快速的AlphaFold2在线的蛋白质三维结构预测

Eumenidus的博客 14万+

1457 Power Strings

1457 Power Strings 嗯?貌似这个题正解是KMP啊 题意不难理解,就是找一个字符串的最长循环节的长度 然后我们把每一段的也就是类似于前缀的东西维护一下hash值 接下来枚举每一段,用函数核查一下,至于核查函数其实和枚举差不多,没有什么难得地方,从这里可以看出来,hash得优化并不是从查找上优化,而是从长度上优化 #include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; const i

CCCCDEV_CCCC的博客 403

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2991

1466 Power Strings

1466 Power Strings 这个题是用来求字符串的最长循环串?貌似和无线传输很像 首先对于n-next[n]的原因我就不在赘述了,其实和无线传输一样,如果想了解更多,请去我的博客参考 然后再用总长度进行取余,证明不管了,我最讨厌证明 #include<iostream> #include<cstdio> #include<algorithm> #include<string> #include<cstring> using namespa

CCCCDEV_CCCC的博客 209

Vue3 - Vite运行打包时Uncaught ReferenceError: process is not defined(解决vue3+vite报错process is not defined)

vue3,vite,vue3+vite报错,process,UncaughtReferenceError:processisnotdefined,浏览器控制台报错processisnotdefined解决方法,vue3如何解决报错,vite报错怎么办,前端打包UncaughtReferenceError:processisnotdefined,npmrunbuild打包报错,vite打包时出现错误,vue3打包运行找不到process,热更新会报错UncaughtRefer

🏆 前端领域优质创作者 7737

【Unity】【Pico】【VR开发】为何PICO打包后真机运行闪退

由于并没有开版权验证,而且闪退后也并没有弹框说版权问题,所以还是怀疑环境有什么地方不对。设置步骤,项目配置都没问题,Build也成功,Unity版本是符合要求的2022LTS版本,但是一在真机上运行就闪退。

每日出拳老爷子的博客 3175

uva 10298 - Power Strings(KMP)

题目链接:poj 2406 Power Strings 题目大意:给出一个字符串,求出该字符串是由几个最小循环节组成的。 解题思路:KMP, n-next[n]即为最小循环节。 #include #include const int N = 1000005; int n, next[N]; char s[N]; void getNext () { in

不慌不忙、不急不躁 2441

Qt —— 百度地图 - 3、Qt调用高德在线地图功能示例(附源码)

Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)

497

Poj 2406 Power Strings

http://www.studyai.com/article/114bf471

Mercury的博客 482

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

poj2406 Power Strings-------KMP

Power Strings   Time Limit:3000MS Memory Limit:65536K Total Submissions:23083 Accepted:9679 Description Given two strings a and b we define a*b to be

Shirley 5145

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: Period
下一篇: Seek the Name, Seek the Fame
大橘为重eleven
博客等级 码龄8年 35粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值