重复字符串(powerstr)
来源:互联网 发布:js遍历jsong数组赋值 编辑:程序博客网 时间:2024/06/06 06:59
题意:
现在给你一个字符串,你可以将它看成是a^n的形式,比如字符串”abababab”,可以认为是”abab”^2, 也可以是”abababab”^1,还可以是”ab”^4。求出n最大为多少。
思路:
直接可以发现是为因数才能分解,所以就找出因数,从大到小枚举一波就好了,遇到可以的就直接退出。
程序:
const maxn=10000;var s:ansistring; i,j,n,m,ans,p:longint; a:array [1..maxn] of longint;function cheak(x:longint):boolean;var k,i,j:longint;begin i:=1; k:=m div x; while (s[i]=s[i+k]) and (i+k<m) do inc(i); if s[i]=s[i+k] then cheak:=true else cheak:=false;end;procedure sort(l,r:longint);var i,j,mid,midx:longint;begin if l>r then exit; mid:=(l+r) div 2; midx:=a[(l+r) div 2]; if cheak(midx) then begin if midx>ans then ans:=midx; sort(mid+1,r); end else sort(l,mid-1);end;begin readln(n); for i:=1 to n do begin readln(s); m:=length(s); p:=0; ans:=1; for j:=2 to m do if m mod j=0 then begin inc(p); a[p]:=j; end; for j:=p downto 1 do if cheak(a[j]) then begin ans:=a[j]; break; end; writeln(ans); end;end.
0 0
- 重复字符串(powerstr)
- 2017.1.15【初中部 NOIP提高组】模拟赛B组 重复字符串(powerstr) 题解
- powerstr
- 重复字符串
- 重复字符串
- 排除重复的字符串
- 替换重复出现字符串
- 过滤重复字符串
- 去掉字符串中的重复
- 重复字符串个数
- [C#]字符串去重复
- 字符串重复操作符
- 字符串数组去重复
- java去除重复字符串
- 最长不重复字符串
- Oracle去掉重复字符串
- C# 字符串去掉重复
- java 字符串去除重复
- Hibernate缓存机制学习笔记
- [算法]直线与圆的交点程序设计
- MongoDB在.NET中使用官方驱动的插入操作
- 智商被碾压1.15
- Hrbust 2230 括号子序列-A【dp】感谢Zqc!
- 重复字符串(powerstr)
- linux下的dnw软件的使用
- HTML5&CSS3初学者指南(1) – 编写第一行代码
- OIBH杯第三次普及组模拟赛T1 立体井字棋
- C#如何释放已经加载的图片
- eclipse中server location灰色,如何修改?
- 【游戏架构分享】我是怎么开发第一款游戏的
- 操作系统I/O:阻塞和非阻塞
- ural 1712