热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hdu3336Countthestring(思维可水过,KMP)

题目以下不是KMP算法——以下是kiki告诉我的方法,好厉害的思维——就是巧用标记,先标记第一个出现的所有位置,然后一遍遍从标记的位置往下找。#include#include#in

 

题目

以下不是KMP算法——

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

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

 


bubuko.com,布布扣class="code_img_closed" id="code_img_closed_442a077a-ca70-45af-8b01-d3a6e3487f4e"
src="https://img8.php1.cn/3cdc5/1e8fa/bdf/c5700bc8dd9abf90.gif">bubuko.com,布布扣class="code_img_opened" id="code_img_opened_442a077a-ca70-45af-8b01-d3a6e3487f4e"
Onclick="cnblogs_code_hide(‘442a077a-ca70-45af-8b01-d3a6e3487f4e‘,event)"
src="https://img8.php1.cn/3cdc5/1e8fa/bdf/d8f727fb41f2cb1f.gif">

#include
#include
<string.h>
#include

using namespace std;
int main()
{
int xin,t,i,j,n,ans,id,xiabiao[200010],shunxu;
char ch[200010];
scanf(
"%d",&t);
while(t--)
{

memset(xiabiao,
0,sizeof(xiabiao));
scanf(
"%d",&n);
scanf(
"%s",ch);
id
=0;shunxu=0;
ans
=0;
for(j=0;j)
{
if(ch[j]==ch[shunxu])
xiabiao[id
++]=j;
}
ans
+=id;
ans
=ans%10007;
do
{
shunxu
++;
xin
=0;
for(i=0;i)
{
if(xiabiao[i]+1<n)
{
if(ch[xiabiao[i]+1]==ch[shunxu])
{
xiabiao[xin
++]=xiabiao[i]+1;
}
}
}
ans
+=xin;
ans
=ans%10007;
id
=xin;
}
while(shunxu1);
printf(
"%d\n",ans);
}
return 0;
}

class="cnblogs_code_collapse">View Code


推荐阅读
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • C++: 实现基于类的四面体体积计算
    本文介绍如何使用C++编程语言,通过定义类和方法来计算由四个三维坐标点构成的四面体体积。文中详细解释了四面体体积的数学公式,并提供了两种不同的实现方式。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
author-avatar
杜甜甜Athena15
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有