题目

以下不是KMP算法——

以下是kiki告诉我的方法,好厉害的思维——

就是巧用标记,先标记第一个出现的所有位置,然后一遍遍从标记的位置往下找。

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int main()
{
int xin,t,i,j,n,ans,id,xiabiao[],shunxu;
char ch[];
scanf("%d",&t);
while(t--)
{ memset(xiabiao,,sizeof(xiabiao));
scanf("%d",&n);
scanf("%s",ch);
id=;shunxu=;
ans=;
for(j=;j<n;j++)
{
if(ch[j]==ch[shunxu])
xiabiao[id++]=j;
}
ans+=id;
ans=ans%;
do
{
shunxu++;
xin=;
for(i=;i<id;i++)
{
if(xiabiao[i]+<n)
{
if(ch[xiabiao[i]+]==ch[shunxu])
{
xiabiao[xin++]=xiabiao[i]+;
}
}
}
ans+=xin;
ans=ans%;
id=xin;
}while(shunxu<n-);
printf("%d\n",ans);
}
return ;
}

最新文章

  1. 【笔记】cookies管理工具类
  2. 一口气从CSS讲到Servlet再到JSP、Struts2,清蒸JavaWeb的前前后后。
  3. Android添加快捷方式(Shortcut)到手机桌面
  4. Sprint第二个冲刺(第二天)
  5. Linux用户root忘记密码的解决(unbuntu16.04)
  6. POJ-1062 昂贵的聘礼---Dijkstra+枚举上界
  7. python入门编程之mysql编程
  8. (转)Spring Boot(二十):使用 spring-boot-admin 对 Spring Boot 服务进行监控
  9. [debug]记一次竞态更新bug的解决
  10. [JavaScript] 给input标签传值
  11. redis集群部署那点事
  12. Freemaker的了解
  13. 同步阿里云镜像到本地,在本地搭建YUM仓库
  14. java 测量运行时间 单位:毫秒
  15. sql行列转换PIVOT与unPIVOT
  16. sudo免密码
  17. ORA-28000: the account is locked
  18. js打印div指定区域内容
  19. easyui更改messager的OkCancel按钮为(中文)确定取消
  20. 如何让Sublime Text编辑器支持新的ABAP关键字

热门文章

  1. windows下 berkerly db的安装配置(修正了关键步骤)
  2. 修改eclipse中tomcat的发布路径
  3. 隐藏虚拟键盘,解决键盘挡住UITextField问题
  4. 获取SilverLight.Web项目中路径Uri
  5. IOS_问题: Xcode8 安装KSImageName插件, 编代码就崩了
  6. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装
  7. 关于无限分类的树状输出(id,name,pid)类型的
  8. android控件之EditText
  9. oracle 存储过程编辑 卡死
  10. 深入理解ThreadLocal(二)