2016 ccpc(长春) Sequence I (kmp)

2021 CCPC训练 F. 地图压缩 ( kmp +字符Hash ) F. 地图压缩 样例 题意 给一个二维字符矩阵 , 每次询问给定一个区间 , 求这个区间的最小循环节。 思路 首先对于一维字符串的最小循环节(无需完全覆盖) , 方法就是求出kmp的nxt数组 , ans = len - nxt[len] 。 对于二维的情况 , 容易发现行与列之间是不冲突的 。 于是我们对行求一遍哈希 , 对列求一遍哈希 。 询问时把区间的每一行的哈希值取出来做一遍kmp的预处理 ,再把每一列的哈希值取出来做一遍kmp的预处理 , 两个结果相乘就是答案 。 这样处理的复杂度是 O( 阅读详情

Sequence I

Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 958    Accepted Submission(s): 370


Problem Description
Mr. Frog has two sequences a1,a2,⋯,an and b1,b2,⋯,bm and a number p. He wants to know the number of positions q such that sequence b1,b2,⋯,bm is exactly the sequence aq,aq+p,aq+2p,⋯,aq+(m−1)p where q+(m−1)p≤n and q≥1 .
 

Input
The first line contains only one integer T≤100 , which indicates the number of test cases.

Each test case contains three lines.

The first line contains three space-separated integers 1≤n≤106,1≤m≤106 and 1≤p≤106 .

The second line contains n integers a1,a2,⋯,an(1≤ai≤109) .

the third line contains m integers b1,b2,⋯,bm(1≤bi≤109) .
 

Output
For each test case, output one line “Case #x: y”, where x is the case number (starting from 1) and y is the number of valid q’s.
 

Sample Input
  
2 6 3 1 1 2 3 1 2 3 1 2 3 6 3 2 1 3 2 2 3 1 1 2 3
 

Sample Output
  
Case #1: 2 Case #2: 1
 

Source
 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5932  5931  5930  5929  5928

当时暴力过的,没想过kmp,太菜了
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define maxx 1123456
int ne[1123456];
int s[maxx],t[maxx];
int p,sum;
void get_next(int l)
{
    int i=0,j=-1;
    ne[0]=-1;
    while(i<l)
    {
        if(j==-1 || t[i]==t[j])
        {
            i++;j++;ne[i]=j;
        }
        else
        {
            j=ne[j];
        }
    }
}
void kmp(int x,int ls,int lt)
{
    int i=x;
    int j=0;
    sum=0;
    while(i<ls)
    {
        if(j==-1 || s[i]==t[j])
        {
            i+=p;j++;
        }
        else
        {
            j=ne[j];
        }
        if(j==lt)
        {
            sum++;
            j=ne[j];
        }
    }

}
int main()
{
    int n,m,i;
    int ll;
    int tt;
    scanf("%d",&tt);
    for(ll=1;ll<=tt;ll++)
    {
        sum=0;
        scanf("%d%d%d",&n,&m,&p);
        for(i=0;i<n;i++)
        {
            scanf("%d",&s[i]);
        }
        for(i=0;i<m;i++)
        {
            scanf("%d",&t[i]);
        }
        get_next(m);
        int ans=0;
        for(i=1;i<=n;i++)
        {
            printf("%d ",ne[i]);
        }
        printf("\n");
        for(i=0;i<n&&i<p;i++)  //如果i大于p,就重复的找了
        {
            kmp(i,n,m);
            ans+=sum;
        }
        printf("Case #%d: %d\n",ll,ans);
    }

    return 0;
}



UG NX二次开发基础篇-外部模式与DLL内部模式(二 DLL内部模式) 通常情况下,我们希望我们的外挂,在UG启动的时候,就自动加载我们的外挂,并以菜单和工具条的方式,显示在UG上面。当然,这也是市面上所有外挂的操作,因为您不可能要求你的用户,以手工加载的方式,去调用你的外挂吧。在上一篇中,有粉丝留言说,启动 bat 文件,启动EXE外挂,会提示无法找到DLL的错误,这是因为UG的环境变量设置有问题,这里,我们把BAT文件作一个修改,直接改为实际目录。EXE外部模式,还有很多部分需要添加的,如参数的传递、输出消息的显示、UG操作的消息显示,等等。Dll执行结束后,会调用。 阅读详情

相关推荐

FEniCS学习笔记01:centos7下通过conda安装FEniCSx0.7

2023年版本的Fenicsx0.7,官网推荐使用conda命令安装集成好的Python包,因此我们的安装思路是先安装Anaconda,再按照官网步骤安装Fenics。

huahua_xiao的博客 5056

2016中国大学生程序设计竞赛(ccpc 长春)题解报告

2016中国大学生程序设计竞赛(ccpc 长春)题解报告

queuelovestack的专栏 8668

图像识别火灾检测系统实战:从火焰特征到YOLO部署全解析

计算机视觉技术正深入改变传统消防的感知方式。图像识别火灾检测利用摄像头采集的视频流,通过颜色、动态和形态特征分析,实现早期火情的自动发现与定位。其核心原理在于,火焰在视觉上具有独特的颜色分布、闪烁特性和轮廓变化,借助目标检测模型如YOLO,可在复杂场景中区分真实火焰与干扰物。这项技术广泛应用于仓库、园区、隧道等大空间场所,是智慧消防的重要支撑。本文从火焰视觉特征、数据集构建、模型选型与系统架构设计出发,结合部署实践中的误报与算力优化经验,为开发者提供一套可落地的视频火焰检测方案。

weixin_42533751的博客 245

2016 ccpc(长春站) 一个弱鸡的总结

第一次参加区域赛,心情是无比的激动,提前两天去坐车,坐了24个小时的火车后终于到达长春,然后去报道,吃饭,下午就是热身赛,热身赛做出来一个,还是看数据看出来的,第二题是什么卡特兰数,然而并不知道什么是卡特兰数,晚上跟着学长逛了逛吉大。  正式比赛,发下题来,一眼就看见第二题,感觉好做,也没仔细想,就开始打代码,可是怎么也出不来,时间一分一秒的过去了,旁边的都做了两个题,我们还是0个,整个人直接懵

原点 1229

无需Root!用VirtualXposed+JustTrustMe在安卓高版本上抓包拼多多API数据

本文详细介绍了在安卓高版本设备上无需Root权限即可抓取拼多多API数据的完整方案,通过VirtualXposed与JustTrustMe组合技术,有效绕过SSL Pinning限制。文章涵盖工具准备、环境配置、应用处理及实战分析,特别针对PDD应用的混合通信策略提供了专业解决方案,适合开发者进行竞品分析和数据采集。

weixin_28678151的博客 453

vscode中使用PlatformIO创建工程加载慢

解决使用VSCODE+PlatformIO中,第一次新建工程一直加载的问题

Reasally的博客 4975

2016 ACM-CCPC长春站比赛总结

以此篇文章记录我ACM生涯第一场正式比赛CCPC长春站。 =========================================================     不知不觉中接触ACM已经有接近一年了,但确实有很多方面做的并不好,距离校队历史上前辈大神在在这个时间点所取得的成绩差距还是很大的。具体的个人分析部分放在最后。     说实话并没有想到第一场比赛真

wchhlbt的博客 3806

VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping

文章目录写在前面摘要1.引言2.相关工作3.系统概述4.视觉前端5.双目视觉惯性里程计A. IMU预积分因子B. 非结构化视觉因子C. 优化和边缘化6. 激光建图A. LiDAR扫描去畸变B. 帧到地图配准7. LiDAR增强的闭环A. 回环检测B. 回环约束C. 全局位姿图优化D. 重定位8. 实验结果A.平台和软件B.测试和结果C. EuRoCMAV数据集测试9.结论 写在前面 写作参考: robot L 开源代码: 开源代码链接 论文原文: 原文链接 摘要 SLAM是移动和空中机器人的一项基本任务

JaydenQ的博客 2321

2016ccpc长春个人题解

B. Fraction 签到题,数据范围极小,一个一个模拟就好。 #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int n, a[15], b[15]; #define LL long long LL ans1, ans2; void...

weixin_40191952的博客 414

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 1017

1、动作捕捉技术:概述与历史

本博文全面介绍了动作捕捉技术的概念、历史演变、类型分类以及完整的工作流程。从早期的连续摄影技术到现代数字动作捕捉系统,文章深入探讨了光学、磁性和机械动作捕捉系统的优缺点及适用场景,并详细解析了动作捕捉数据的生成原理与数学基础。此外,还涵盖了特殊部位如手部、面部和木偶的动作捕捉方法,并讨论了动作捕捉在动画制作、虚拟现实、医疗康复等领域的广泛应用与发展前景。

apple5的专栏 220

2016 ccpc长春现场赛I Sequence I(hdu 5918)

Sequence I Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description Mr. Frog has two sequ

overload1997 1963

自然语言处理之话题建模:BERTopic模型详解

BERTopic是一种基于BERT的先进话题建模技术,它结合了BERT的语义理解能力和非参数聚类算法HDBSCAN的灵活性,能够生成高质量、语义丰富的话题。与传统的LDA(Latent Dirichlet Allocation)话题模型相比,BERTopic能够更好地捕捉文本的复杂语义结构,因为它利用了预训练的BERT模型来嵌入文本,从而在话题建模中引入了深度学习的力量。聚类是无监督学习的一种,其目标是将数据集中的样本按照相似性进行分组,每个组称为一个“簇”。

zhubeibei168的博客 4538

HDOJ 5918 Sequence I 【2016CCPC长春现场赛】KMP暴力

KMP匹配是模板题:这个题改了之后的模板题 问:每次需要间隔P个字符,求匹配数 间隔P个字符,那么我们可以分成多个子串去求咯? 把大串分解成很多很多个小串,以P为间隔(也就是分成了P个) 然后查询P次 直接用BIN神模板,会出现一个很蠢的问题:next数组求了很多次! 所以,这个题把求next数组的部分拿到外面来 然后分成以P为间隔,分成多个新的数组就好!!!

ACdream 456

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CCPC2016长春H (hdu 5918 Sequence I)

给两个数组a , b,并给一个间隔值p。问在间隔值p下b在中有多少个匹配。 比如a数组为1 2 2 4 3,b数组为1 2 3,那么在间隔值为2的情况下有一个匹配。 把a数组中可以作为开头的所有间隔数字比如2可以开头的数字是1或者2,3可以开头的数字是1、2、3取出来。 然后做p次kmp即可。 //#define test #include&lt...

ad4627的博客 113

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CCPC[长春] 8.Sequence I KMP and similar

Sequence I Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description Mr. Frog has two sequ

你那么爱笑,家里人知道吗? 633

【HDOJ】5918 Sequence I CCPC2016 长春

【HDOJ】5918 Sequence I CCPC2016 长春 Problem DescriptionMr. Frog has two sequences a1,a2,⋯,ana_1,a_2,⋯,a_n and b1,b2,⋯,bmb_1,b_2,⋯,b_m and a number pp.

Pure_W的博客 485

HDU 5918 Sequence I

题目来源:2016 CCPC 长春站 题意:给出两个序列 a[] , b[] ,如果b1,b2....bm能够与aq,aq+p,aq+2p...aq+(m-1)p对应( q+(m-1)p<=n && q>=1 ),则q为一个合法的数,找出满足题意的q的个数 思路:简单KMP,枚举起点q,如果匹配成功后记录一次然后重新从最后匹配位置进行匹配,一直匹配到a[]结束 /***...

weixin_33887443的博客 85

HDU - 5918 Sequence I(2016年长春区域赛铜牌题)

Mr. Frog has two sequences a1,a2,⋯,an and b1,b2,⋯,bm and a number p. He wants to know the number of positions q such that sequence b1,b2,⋯,bm is exactly the sequence aq,aq+p,aq+2p,⋯,aq+(m−1)p where q+...

vocaloid01的博客 290

2016 ccpc 长春站

这是第一场区域赛,我们两个15级加一个14级学长居然蹭了一个银,不得不说是运气好,记得做D题的时候,队友说了一句话,撑死胆大的,饿死胆小的,然后D题就过了,我也是膜啊膜,看了一些对这场比赛的评价,我这个刚学了一年的渣渣实在不好说什么,不过5题从银到铁实在吓了我一跳,没有卡思路,5题的思路都是瞬间就出来的,并且没有错误,然后提交都是1A,不得不说,运气实在太好了。 或许是刚开始有点紧张,我们队在B

zstu_zy的博客 711

2016CCPC长春 一些题解

B - Fraction 温暖的签到,求一个奇奇怪怪的式子的解。 不能用除法,我们手写几次就会发现上一次的分子分母交换一下就可以,最后记得约分 #include &lt;iostream&gt; #include &lt;cstdio&gt; #define ll long long using namespace std; int a[20],b[20]; int gcd(int a,int b...

limn204的专栏 404

2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】

Problem Description Mr. Frog recently studied how to add two fractions up, and he came up with an evil idea to trouble you by asking you to calculate the result of the formula below:As a talent, can ...

weixin_30439031的博客 227

HDOJ 5914 Triangle 【2016CCPC长春现场赛】数学

在【1,n】中,可以删去最多多少个数,可以使得剩下的数字构不成三角形的三条边 三角形:a+b 那么,极限条件是什么呢?!等于号 a+b=c 取a=1,b=2(前两个,肯定要尽量小)那么得到的FIB数列(讲道理的话,这个题的n设计的得太小了,如果搞大一点更容易知道是数学题) 1,2,3,5,8,13是可能取出的最多的三角形的边 所以,答案就是打表就好: #include

ACdream 499

2021CCPC女生专场 F. 地图压缩 子串hash+二维KMP

做这个题之前要做一下poj2185poj2185poj2185,这两个题很像,但是这个题有多次询问,所以如果每次都去计算一次所给矩形的最小循环节,那么复杂度是O(n2q)O(n^2q)O(n2q),肯定

ComingLiu的博客 442

2016CCPC长春:Sequence II(主席树)

问题概述:n个数q次查询,每次查询(l,r)表示查询区间[l,r]内所有不同数字第一次出现的下标,输出这些下标中位数 特殊:如果下标数sum为偶数个,则输出第sum/2个下标,且强制在线,每一组的l和r都跟上一组的答案有关 (HDU 5919:http://acm.hdu.edu.cn/showproblem.php?pid=5919) 解题思路: 将数组倒过来建树,每

加载中... 906

2016--CCPC--长春站总结

过去两天了,昨天下午两点结束比赛时满心的失落,4题,不想找任何理由,就是水平达不到吧,总结 一下吧,下一场大连的ICPC更不好打,但不管怎么说该总结一下,吸取点教训,下一场不管怎么样,这一场的失误不可以再出现,要尽自己最大的努力啊,挺对不起静哥和旭哥的,没有帮着他们拿到奖牌,我还是拖后腿了。 今天拿到CCAT的s1考试成绩了,呵呵,C语言机试我没有过,惊讶吧,我也很惊讶,基础都没打好就出去比赛,

bless295的博客 928
上一篇: POJ Period 1691(kmp)
下一篇: KMP中next数组的理解
K_y
K_y
博客等级 码龄10年 4粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值