news 2026/4/23 17:14:07

【ACWing】138. 兔子与兔子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【ACWing】138. 兔子与兔子

题目地址:

https://www.acwing.com/problem/content/140/

很久很久以前,森林里住着一群兔子。有一天,兔子们想要研究自己的 DNA 序列。我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含26 2626个小写英文字母)。然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。

输入格式:
第一行输入一个DNA字符串S SS
第二行一个数字m mm,表示m mm次询问。
接下来m mm行,每行四个数字l 1 , r 1 , l 2 , r 2 l_1,r_1,l_2,r_2l1,r1,l2,r2,分别表示此次询问的两个区间,注意字符串的位置从1 11开始编号。

输出格式
对于每次询问,输出一行表示结果。
如果两只兔子完全相同输出Yes,否则输出No(注意大小写)。

数据范围:
1 ≤ l e n g t h ( S ) , m ≤ 1000000 1≤length(S),m≤10000001length(S),m1000000

字符串哈希。代码如下:

#include<iostream>#include<cstring>usingnamespacestd;usingull=unsignedlonglong;constintN=1e6+10,P=131;intn,m;chars[N];ull ha[N],po[N];ullget_hash(intl,intr){returnha[r]-ha[l-1]*po[r-l+1];}intmain(){scanf("%s",s+1);scanf("%d",&m);n=strlen(s+1);po[0]=1;for(inti=1;i<=n;i++){ha[i]=ha[i-1]*P+s[i];po[i]=po[i-1]*P;}while(m--){intl1,r1,l2,r2;scanf("%d%d%d%d",&l1,&r1,&l2,&r2);puts(get_hash(l1,r1)==get_hash(l2,r2)?"Yes":"No");}}

预处理时间复杂度O ( l S ) O(l_S)O(lS),每次询问时间O ( 1 ) O(1)O(1),空间O ( l S ) O(l_S)O(lS)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:45:14

JetBrains IDE试用期管理工具指南:跨平台免费方案完全解析

JetBrains IDE试用期管理工具指南&#xff1a;跨平台免费方案完全解析 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗&#xff1f;ide-eval-resetter这款超实用的免费工具…

作者头像 李华
网站建设 2026/4/23 9:47:51

苹果手机应用管理全解析:入口位置、核心功能与使用技巧详解

苹果手机应用管理入口全解析&#xff1a;位置、功能与使用技巧 近年来&#xff0c; 随着智能手机功能日益复杂&#xff0c;应用管理成为用户优化手机性能、保护隐私的重要环节。苹果手机作为全球最受欢迎的移动设备之一&#xff0c; 其应用管理功能&#xff08;App Store应用与…

作者头像 李华
网站建设 2026/4/23 9:46:17

可执行程序运行“bus error“问题解决之库依赖

文章目录1. 背景2. bus error 错误3. 如何分析4. 举例1. 背景 我们很多时候&#xff0c;在运行一个第三方的程序的时候&#xff0c;出现一个 bus error 问题&#xff0c;然后就卡住了&#xff0c;不能再进行下一步操作。本文个人自身经历出发&#xff0c; 讲解其中一种情况。 2…

作者头像 李华
网站建设 2026/4/23 12:35:50

【Git学习】Git分支的多人协作

单一分支的多人协作创建testGit1本地与远程仓库修改本地仓库local的级别的用户名和邮箱$ git config --local user.name 鲁智深$ git config --local user.mail luzhishen126.com项目克隆把远程项目克隆到本地形成一个本地仓库&#xff1a;git clone 远程仓库HTTP此时克隆下来的…

作者头像 李华
网站建设 2026/4/23 11:04:19

【R语言高手进阶指南】:5步搞定农业产量的复杂数据建模

第一章&#xff1a;Shell脚本的基本语法和命令Shell脚本是Linux/Unix系统中自动化任务的核心工具&#xff0c;通过编写可执行的文本文件&#xff0c;用户能够组合命令、控制流程并处理数据。一个典型的Shell脚本以“shebang”开头&#xff0c;用于指定解释器。脚本的起始声明 所…

作者头像 李华