HDU 1711 Number Sequence(KMP入门)

微信小程序bindtap事件传参全解析:从data-*原理到实战避坑 在Web前端与移动端开发中,事件处理是构建交互应用的核心基础。其原理在于视图层捕获用户操作后,将事件信息传递给逻辑层进行响应。这项技术的核心价值在于实现用户意图与程序逻辑的精准对接,是构建动态、响应式界面的基石,广泛应用于按钮点击、表单提交、列表交互等场景。微信小程序作为流行的跨端开发框架,其事件机制遵循此通用模型,但有其特定实现。其中,bindtap用于监听点击事件,而通过data-*自定义属性进行参数传递,是连接视图与逻辑层数据的关键实践。本文将深入探讨如何利用data-*属性高效、准确地在事件中传递业 阅读详情

Number Sequence

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6786    Accepted Submission(s): 3084


Problem Description
Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] = b[2], ...... , a[K + M - 1] = b[M]. If there are more than one K exist, output the smallest one.
 

Input
The first line of input is a number T which indicate the number of cases. Each case contains three lines. The first line is two numbers N and M (1 <= M <= 10000, 1 <= N <= 1000000). The second line contains N integers which indicate a[1], a[2], ...... , a[N]. The third line contains M integers which indicate b[1], b[2], ...... , b[M]. All integers are in the range of [-1000000, 1000000].
 

Output
For each test case, you should output one line which only contain K described above. If no such K exists, output -1 instead.
 

Sample Input
  
2 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 1 3 13 5 1 2 1 2 3 1 2 3 1 3 2 1 2 1 2 3 2 1
 

Sample Output
  
6 -1
 

Source
 
  hdu kmp入门题,一开始看到这个题目,看了数据范围,就直接否定了自己最开始想到的算法O(m*n)。想着用stl string中的find,网上查了一下string中find时间复杂度是O(m*n)的,接下来就是补基础,看《算法导论》,一知半解的,根据书上的伪代码勉强AC了,跑了500ms,膜拜一下跑进100ms的牛牛,希望能得到各路大虾们的指点,俺也优化优化。
#include <stdio.h>
#define nMax 1000002
int a[nMax],b[nMax];//a为文本,b为模式串 
int s[nMax]; //前缀函数 
int n,m;
void compute(){//计算前缀函数 
	int k=0,q;
	s[1]=0;
	for(q=2;q<=m;q++){
		while(k>0 && b[k+1]!=b[q]){
			k=s[k];
		}
		if(b[k+1]==b[q])
			k=k+1;
		s[q]=k;		
	}
}

void kmpmatch(){
	int q=0,i,j;//q记录已经匹配到的模式串中的个数 
	for(i=1;i<=n;i++){//从左至右逐个匹配文本中的字符 
		while(q>0&&b[q+1]!=a[i]){
			q=s[q];				//下一个字符未能匹配,通过前缀函数计算下个文本匹配的位置			
		}
		if(b[q+1]==a[i])//下一个字符能匹配 
			q=q+1;
		if(q==m){//模式串中字符全部匹配 
			printf("%d\n",i-m+1);
			return;			
		}								
	}
	printf("-1\n");
	return;	
}
int main(int argc, char *argv[]){
	int cas,i,j;
	scanf("%d",&cas);
	while(cas--){
		scanf("%d%d",&n,&m);
		for(i=1; i<=n;i++){
	 		scanf("%d",&a[i]);
	 	}
	 	for(i=1; i<=m;i++){
	 		scanf("%d",&b[i]);
	 	}
	 	compute();
	 	kmpmatch();
	} 
	return 0;
}


ADT MCP Server 把 ABAP 开发带进 Agent 模式 今天讨论 ADT MCP Server,不能只把它看成 Visual Studio Code 里多出来的一个开关。它真正有意思的地方,在于它把 ABAP 后端开发里那些原本需要手工点击、手工创建、手工激活、手工查服务元数据的动作,包装成一组可以被 GitHub Copilot 这类 coding agent 调用的工具。SAP 在 RAP130 练习里把它描述为运行在 ADT for Visual Studio Code 扩展内部的本地 HTTP Server,它实现的是 Model Context Pro 阅读详情

相关推荐

半导体工厂自动化实战:用secs4net实现设备与MES系统通信(附完整代码)

本文详细介绍了如何利用secs4net框架实现半导体工厂设备与MES系统的高效通信。通过解析SECS/GEM协议的核心架构、关键业务场景实现及性能优化实践,帮助开发者快速掌握工业自动化通信技术,提升生产效率和系统稳定性。

transformer2023的博客 892

HDU - 1711 Number Sequence KMP入门

Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 &lt;= M &lt;= 10000, 1 &lt;= N &lt;= 1000000). Your task is to find a number K which make a[K] = b[1], a[K ...

Abandoninged的博客 286

使用RustDesk或者AnyDesk的TCP隧道实现Codesys系列PLC的远程调试和下载

Codesys远程调试

exat500g的博客 7273

hdu 1711 Number Sequence KMP入门题

Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 27074    Accepted Submission(s): 11428 Problem Description Given two s

便纵有千种风情 383

KALI虚拟机挂代理教程

需要你本地挂了代理,然后通过虚拟机连接本机代理端口,不说废话了,直接说怎么做了。 1.查看选项设置中自己的小飞机的本地端口是多少:(默认是1080) 2.本机win+r打开cmd,输入ipconfig查看本地ip,我的本地ip是192.168.0.107: 2.打开kali虚拟机,编辑ProxyChains配置文件: vi /etc/proxychains.conf 3.在文件末尾的ProxyList中添加物理机本地ip和1080端口作为代理地址: 4.保存并退出即可: esc :wq 回车 5.

qq_34853514的博客 3万+

用Python绘制DCA曲线详解及示例代码

在这篇文章中,我们将详细解释如何使用Python绘制DCA曲线,并提供示例代码。通过使用上述的示例代码和解释,你可以自己尝试不同的投资金额、期数和增长率来绘制自定义的DCA曲线。通过运行上述代码,我们将得到一个绘制了DCA曲线的图表。该图表将显示出DCA投资策略在给定投资金额、投资期数和增长率下的投资价值随时间的变化情况。在上述代码中,我们使用一个循环来计算每个投资期的DCA曲线值。现在,我们可以使用上述函数来计算DCA曲线的值,并将其绘制成图表。最后,我们返回计算得到的DCA曲线值列表。

TechPr的博客 1408

HDU 1711 Number Sequence KMP入门

点击打开链接 Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9608    Accepted Submission(s): 4392 Problem Description

代码改变世界,keep coding。 978

VS Code 重大更新:Agent Skills完美支持!

代码不会骗人,但你的 LLM 可能会编个故事——除非你给它一本《技能手册》。——某位深夜调试成功的 Go 工程师。

weixin_44058951的博客 3459

HDU - 1711 Number Sequence KMP入门题

感谢出题小哥,复习一下KMP KMP 入门 #include #include #include #include #include #include #include #include #include #include #include #define PI acos(-1.0) #define in freopen("in.txt", "r", stdin) #define ou

床前明月光 310

【Android逆向工程】第17章:反调试与反 Hook 对抗技术

本文介绍了Android应用常见的反调试技术及其对抗策略。主要内容包括: 反调试技术概述 分类:进程检测(ptrace、TracerPid)、文件检测、行为检测(时间/断点)、内存检测、框架检测 对抗思路:识别检测点→Hook检测函数→修改返回值→隐藏工具特征 ptrace检测实现 原理:利用ptrace系统调用检测调试器附加 实现方式:直接检测、持续线程检测、fork子进程检测 绕过方法:Frida Hook ptrace函数返回0,或使用LD_PRELOAD注入假函数 综合防护 涉及多种检测技术的组合使

w987333120的博客 359

计算机视觉与深度学习 | Matlab实现ORBSLAM2(附完整代码)

================================================ 博主github:https://github.com/MichaelBeechan 博主优快云:https://blog.youkuaiyun.com/u011344545 ================================================ 代码阅览 效果图 代码 imdsLeft = imageDatastore('C:\MichaelSpace\matlabworks

尘世冰封的专栏 1522

HDU 1711:Number Sequence (KMP入门)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 字符串的匹配变成了数字的匹配,思路一样。 AC代码: #include #include #include using namespace std; int text[1000010]; int patten[10010]; int nex[10010];

温姑娘的博客 275

Plant Simulation 快速建模与布局(3)——自动生成的对象 代码“安全”删除管理

《PlantSimulation快速布局建模课程》教授利用SimTalk语言实现高效建模的技术要点,包括批量对象创建、阵列布局、属性管理及自动连接功能。重点讲解对象安全删除机制,通过existsObject检查对象存在性后使用deleteObject方法删除,避免程序报错。课程提供完整代码示例,展示如何通过循环结构实现矩阵布局对象的创建与安全删除,确保代码健壮性,显著提升建模效率。

qq_31964455的博客 116

HDU 1711—— Number Sequence(KMP 入门)

纯模板,查找a串中首次出现b

fsdcyr 573

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HDU 1711 Number Sequence(KMP入门)

A - Number Sequence HDU - 1711Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 Input The first line of input is a number T which indicat

STOP 266

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

HDU-1711 Number Sequence(kmp入门)

这题是kmp的模板题,关于kmp的解析我认为这篇博文写得bi

小G的ACM之路 728

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

hdu 1711 Number Sequence(KMP入门模板题)

题目链接:【hdu 1711】 t组测试数据,每组包括长度为n的数列a以及长度为m的数列b,问数列b是否是数列a的子序列,如果是,输出最小的i使得a[i]=b[0],如果不是则输出-1 优化后的KMP简单应用 #include #include #include #include #include using namespace std; const int inf=1e6+10;

小小西北风 636

HDU 1711 Number Sequence (KMP 入门)

Number Sequence Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a...

weixin_34049032的博客 116

【字符串入门专题1】 I - Number Sequence hdu1711【kmp】

Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28715    Accepted Submission(s): 12063 Problem Description Given

loving coding 252

HDU - 1711——Number Sequence (KMP入门题)

Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1 &lt;= M &lt;= 10000, 1 &lt;= N &lt;= 1000000). Your task is to find a number K which make a[K] = b[1], a[K ...

creator平 268

HDU - 1711 Number Sequence(KMP入门模板题)

Given two sequences of numbers : a[1], a[2], …… , a[N], and b[1], b[2], …… , b[M] (1 &lt;= M &lt;= 10000, 1 &lt;= N &lt;= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] = b...

kuronekonano的博客 227

HDU - 1711 Number Sequence KMP字符串匹配

HDU - 1711 Number Sequence Time Limit: 5000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description Given two sequences of numbers : a[1],

qq_18661257的专栏 939

HDU 1711 - Number Sequence(KMP)

题目链接:HDU - 1711 Number Sequence Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) ...

Ripcord丶的博客 270

HDU 1711 Number Sequence (字符串匹配,KMP算法)

HDU 1711 Number Sequence (字符串匹配,KMP算法) Description Given two sequences of numbers : a1, a2, ...... , aN, and b1, b2, ...... , bM (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to ...

dipinzhu4111的博客 185

机试之字符串匹配——HDU1711-Number Sequence

文章目录机试之字符串匹配——HDU1711-Number Sequence1、KMP原理及代码1.1KMP原理1.2KMP代码2、例题HDU1711Number Sequence2.1题目2.2代码 机试之字符串匹配——HDU1711-Number Sequence 1、KMP原理及代码 1.1KMP原理 KMP是字符串匹配的一种较好的算法。字符串匹配在字符串的应用中很常见,其常见的方法有: 直接...

李霁明的博客 311

HDU 1711 Number Sequence(kmp模板)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20827    Accepted S

hkh746392783的专栏 389
上一篇: HDU 1056 HangOver
binary001
博客等级 码龄16年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值