AW138 兔子与兔子(【模板】字符串哈希)
时间:2019-10-30
本文章向大家介绍AW138 兔子与兔子(【模板】字符串哈希),主要包括AW138 兔子与兔子(【模板】字符串哈希)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
基本思想:
- hash[i]=hash[i-1]*base+s[i].(base:选定的质数,如101,171等)
- 本质:前缀积.
- 对于一个范围l~r,可以利用hash[r]-hash[l]*tmp[r-l+1]获取.(tmp:base的前缀积)
掌握技巧:
- 手动模拟.
#include<cstdio> #include<iostream> #include<cstring> #define ull unsigned long long using namespace std; const int MAXN=2e6; string s; ull hash_[MAXN],tmp[MAXN]; void initHash(){ int len=s.length(); ull base=101; tmp[0]=1; for(int i=1;i<=len;i++){ hash_[i]=hash_[i-1]*base+s[i-1]; tmp[i]=tmp[i-1]*base; } } int main(){ cin>>s; initHash(); int m; scanf("%d",&m); for(int i=1;i<=m;i++){ int l1,r1,l2,r2; scanf("%d%d%d%d",&l1,&r1,&l2,&r2); ull hash1=hash_[r1]-hash_[l1-1]*tmp[r1-l1+1]; ull hash2=hash_[r2]-hash_[l2-1]*tmp[r2-l2+1]; if(hash1==hash2){ printf("Yes\n"); }else printf("No\n"); } return 0; }
原文地址:https://www.cnblogs.com/zbsy-wwx/p/11765348.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第三节:Activiti6.0——Query的API使用
- 第二节:Activiti6.0配置文件的读取
- SpringMvc配置文件上传
- 使用web.xml配置SpringMvc(使用Java加载配置)
- SpringMVC配置字符过滤器的两种方式
- SpringMvc使用Json(Java配置方式)
- 使用IDEA创建SpringMvc并整合Thymeleaf(Java配置版)
- Junit报错:Argument(s) are different! Wanted:
- RocketMQ使用过滤器filterServer(4.3版本后)
- Python+Appium运行简单的demo,你需要理解Appium运行原理!
- 网站日志分析完整实践【技术创造101训练营】
- HTML前端知识
- 掌握 AST,轻松落地关键业务「技术创作101训练营」
- 一文轻松学会linux字符设备驱动
- leetcode树之N叉树的前序遍历