当前位置: 首页 > news >正文

洛谷 P10468 兔子与兔子

题目描述

很久很久以前,森林里住着一群兔子。

有一天,兔子们想要研究自己的 DNA 序列。

我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。

然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。

注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。

输入格式

第一行输入一个 DNA 字符串 S。

第二行一个数字 m,表示 m 次询问。

接下来 m 行,每行四个数字 l1​,r1​,l2​,r2​,分别表示此次询问的两个区间,注意字符串的位置从 1 开始编号。

输出格式

对于每次询问,输出一行表示结果。

如果两只兔子完全相同输出Yes,否则输出No(注意大小写)。

输入输出样例

输入 #1复制

aabbaabb 3 1 3 5 7 1 3 6 8 1 2 1 2

输出 #1复制

Yes No Yes

说明/提示

数据保证,1≤∣S∣,m≤106。其中,∣S∣ 为字符串 S 的长度。

#include<bits/stdc++.h> using namespace std; const int N=1e6+10,P=13331; string s; typedef unsigned long long ULL; ULL f[N];//字符串哈希数组 ULL p[N];//P的i次方 int n,m; void init_hash() { p[0]=1; for(int i=1;i<=n;i++) { f[i]=f[i-1]*P+s[i]; p[i]=p[i-1]*P; } } ULL get_hash(ULL l,ULL r) { return f[r]-f[l-1]*p[r-l+1]; } int main() { cin>>s; n=s.size(); s=" "+s; cin>>m; init_hash(); while(m--) { ULL l1,r1,l2,r2; cin>>l1>>r1>>l2>>r2; if(get_hash(l1,r1)==get_hash(l2,r2)) { cout<<"Yes"<<endl; }else{ cout<<"No"<<endl; } } return 0; }
http://www.jsqmd.com/news/107647/

相关文章:

  • 终极指南:如何用pbxproj轻松玩转Xcode项目文件
  • DiT架构演进:从理论突破到工业级扩展的技术实践
  • 边缘计算开源项目终极指南:零成本构建智能物联网系统
  • 终极多平台年会抽奖系统完整使用指南
  • 如何从零开始构建企业级工作流自动化系统
  • NPDP认证终极指南:如何快速掌握产品经理核心技能?
  • DownKyi哔哩下载姬:B站视频批量下载与格式转换完整教程
  • 移动端AI部署革命:Paddle-Lite如何让深度学习模型在手机上流畅运行
  • 词库转换终极指南:轻松实现20+输入法无缝迁移
  • 终极EPUB编辑器指南:如何快速制作专业电子书
  • 类型安全强化学习实战:从Gymnasium类型提示到项目稳健性提升
  • 重塑复古美学:Analog Diffusion胶片质感图像生成的15个实战技巧
  • 2025终极提示工程实战指南:核心技术解密与效率突破
  • JSLint:提升JavaScript代码质量的智能工具
  • 17、处理器早期估计建模:技术解析与应用实践
  • Vim文件属性查看终极指南:三大工作流快速解决你的文件管理痛点
  • unioffice终极指南:用Go语言高效处理Office文档的完整方案
  • 分布式通信实战指南:从性能瓶颈到系统优化
  • NPDP产品管理体系深度解析
  • 快速上手EPubBuilder:5分钟创建专业EPUB电子书
  • POV-Ray 终极指南:从零开始掌握专业级射线追踪渲染
  • OBS多平台推流终极指南:一键实现同步直播全覆盖
  • GLM-4.5-FP8终极指南:3550亿参数MoE大模型快速部署与实战应用
  • 专业鼠标性能测试指南:用数据优化你的操作体验
  • Notally 极简笔记应用完整使用指南
  • 硬核体素渲染:从理论到实践的WebGL终极指南
  • CPUID指令:Linux内核如何“审问“你的处理器
  • 为什么我的React Native摄像头总是卡顿?深度调优实战
  • 精打细算的用户心智:在线购物系统收藏与购物车功能模型优化实践
  • Video Download Helper 高级版:彻底摆脱120分钟下载限制