AcWing 兔子与兔子
AcWing 兔子与兔子
Description
很久很久以前,森林里住着一群兔子。
有一天,兔子们想要研究自己的 DNA 序列。
我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母)。
然后我们每次选择两个区间,询问如果用两个区间里的 DNA 序列分别生产出来两只兔子,这两个兔子是否一模一样。
注意两个兔子一模一样只可能是他们的 DNA 序列一模一样。
Input
第一行输入一个 DNA 字符串 S。
第二行一个数字 m,表示 m 次询问。
接下来 m 行,每行四个数字 l1,r1,l2,r2,分别表示此次询问的两个区间,注意字符串的位置从1开始编号。
Output
对于每次询问,输出一行表示结果。
如果两只兔子完全相同输出 Yes,否则输出 No(注意大小写)。
Data Size
- 1≤length(S),m≤1000000
Sample Input
aabbaabb 3 1 3 5 7 1 3 6 8 1 2 1 2
Sample Output
Yes No Yes
题解:
- 字符串哈希。
- 模版题。用递推算出前i位的哈希值(1 <= i <= .size()),然后用前缀和方法得到想要的区间的哈希值。比较即可。
#include <iostream>
#include <cstdio>
#include <string>
#define N 1000005
#define ull unsigned long long
using namespace std;ull f[N], p[N] = {1};
int q;int read()
{int x = 0; char c = getchar();while(c < '0' || c > '9') c = getchar();while(c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();}return x;
}int main()
{string t; cin >> t;for(int i = 0; i < t.size(); i++)f[i + 1] = f[i] * 131 + (t[i] - 'a' + 1),p[i + 1] = p[i] * 131;cin >> q;for(int i = 1; i <= q; i++){int l1 = read(), r1 = read();int l2 = read(), r2 = read();ull v1 = f[r1] - f[l1 - 1] * p[r1 - l1 + 1];ull v2 = f[r2] - f[l2 - 1] * p[r2 - l2 + 1];printf(v1 == v2 ? "Yes\n" : "No\n");}return 0;
}
转载于:https://www.cnblogs.com/BigYellowDog/p/11343489.html
AcWing 兔子与兔子相关推荐
- [RabbitMQ+Python入门经典] 兔子和兔子窝
RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的Python段当中推荐了一篇blog,作为RabbitMQ+Python的入门手册再合适不过了.不过,正如其标题Rabbit and ...
- php狼和兔子算法,PHP基于递归算法解决兔子生兔子问题php技巧
这篇文章主要介绍了PHP基于递归算法解决兔子生兔子问题,结合实例形式分析了兔子生兔子问题的php面试题采用循环与递归两种思路的解决方法,需要的朋友可以参考下 本文实例讲述了PHP基于递归算法解决兔子生 ...
- python兔子_python 实现兔子生兔子示例
如下所示: # -*- coding: utf-8 -*- # 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子. # 当小兔子长到第三个月后,也会每个月再生一对小小兔子. # ...
- 一只兔子每三个月生兔子JAVA,兔子生兔子问题
关于兔子生兔子的算法详解 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 第1个月 -- 1对 第2 ...
- 兔子问题 php,PHP基于递归算法解决兔子生兔子问题php技巧
这篇文章主要介绍了PHP基于递归算法解决兔子生兔子问题,结合实例形式分析了兔子生兔子问题的php面试题采用循环与递归两种思路的解决方法,需要的朋友可以参考下 本文实例讲述了PHP基于递归算法解决兔子生 ...
- python兔子编程_Python兔子生兔子算法,编程练习题实例十一
Python兔子生兔子算法,编程练习题实例十一 Python兔子生兔子算法,编程练习题实例十一 没学习python之前就听说过一个兔子生兔子的数学算法问题.现在学习了python编程后,自然要用pyt ...
- java 兔子生兔子
标题 兔子生兔子 问题描述 假设一对兔子的成熟期是一个月,即一个月可长成成兔,那么,如果每对成兔每个月都生一对小兔,一对新生的小兔从第二个月起就开始生兔子,试问从一对兔子开始繁殖,以后每个月会有多少对 ...
- python生兔子问题(递归算法)_python 实现兔子生兔子示例
python 实现兔子生兔子示例 如下所示: # -*- coding: utf-8 -*- # 简述:话说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子. # 当小兔子长到第三个月后 ...
- C语言例题理解(小写字母转换成大写字母,兔子生兔子问题,求100以内勾股数,整数逆序输出)
例一(小写字母转换成大写字母) #include <stdio.h> int main() {char x,y;printf("输入一个小写字母:\n");x=getc ...
- [转][RabbitMQ+Python入门经典] 兔子和兔子窝
来源:http://blog.ftofficer.com/2010/03/translation-rabbitmq-python-rabbits-and-warrens/ RabbitMQ作为一个工业 ...
最新文章
- UnityVS(Visual Studio Tools For Unity)的安装与使用
- 51 nod 1427 文明 (并查集 + 树的直径)
- [软件工程基础]结对项目 数独程序扩展
- 卖萌屋原创专辑首发,算法镇魂三部曲!
- 240多个jQuery插件 (转)
- 浏览器播放rtsp流媒体解决方案
- scrapy 命令行基本用法
- ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”
- 第三方支付平台基本概念
- Linux系统下为WPS添加字体,实现WPS输入中文
- 手机怎样和宽带连接无线路由器设置路由器连接服务器,手机如何设置路由器?...
- NCEPU-EDM使用说明
- CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING
- Mysql出现 “ERROR 1062” 的解决方法
- iOS平台游戏安全再议之存档修改与防御
- 教程篇(7.0) 09. FortiGate安全 应用控制 ❀ Fortinet 网络安全专家 NSE 4
- iPad网游输入优化
- 运用特征脸方法的基于Opencv的猫脸检测实现
- Cisco 防火墙Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换
- 接口思想将kafka topic写入到hbase中