bzoj 3207 花神的嘲讽计划Ⅰ 主席树+hash
花神的嘲讽计划Ⅰ
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 3112 Solved: 1086
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 3 4 5 6 7 8
2 5 2 3 4
1 8 3 2 1
5 7 4 5 6
2 5 1 2 3
1 7 3 4 5
Sample Output
Yes
Yes
Yes
No
HINT
Source
题解:
主席树吧,两棵线段树形式相同,满足前缀和的形式是主席树的基本操作
这道题k确定,这不就随便hash就可以瞎搞了。
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> #define ull unsigned ll
#define ll long long
#define inf 18446744073709551615UL
#define N 200007
#define MX 10000007
using namespace std;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} int n,m,K,cnt;
int val[N],b[N],rt[N];
int sum[MX],a[MX][];
ull H[N]; void ins(int x,int &y,unsigned ll val)
{
y=++cnt;int tmp=y;
sum[y]=sum[x]+;
unsigned ll l=,r=inf,mid;
while(l!=r)
{
mid=l/+r/;
if((l&)&&(r&))mid++;
int t=;
if(val>mid)t=,l=mid+;
else r=mid-;
a[y][t]=++cnt;
a[y][t^]=a[x][t^];
x=a[x][t];y=a[y][t];sum[y]=sum[x]+;
}
y=tmp;
}
bool query(int x,int y,unsigned ll val)
{
unsigned ll l=,r=inf,mid;
while(l!=r)
{
mid=l/+r/;
if((l&)&&(r&))mid++;
int t=;
if(val>mid) t=,l=mid+;
else r=mid-;
x=a[x][t],y=a[y][t];
}
return (sum[y]-sum[x])!=;
}
int main()
{
n=read(),m=read(),K=read();
for(int i=;i<=n;i++)
val[i]=read();
for(int i=;i<=n;i++)
H[i]=H[i-]*+val[i];
unsigned ll M=;
for(int i=;i<=K;i++)M*=;
for(int i=K;i<=n;i++)
ins(rt[i-],rt[i],H[i]-H[i-K]*M);
while(m--)
{
int x=read(),y=read();
for(int i=;i<=K;i++)
b[i]=read();
unsigned ll now=;
for(int i=;i<=K;i++)
now=now*+b[i];
if(query(rt[x+K-],rt[y],now))puts("No");
else puts("Yes");
}
}
o( ̄ヘ ̄o#),hzw的代码。
bzoj 3207 花神的嘲讽计划Ⅰ 主席树+hash的更多相关文章
- BZOJ3207花神的嘲讽计划Ⅰ——主席树+hash
题目描述 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟 ...
- BZOJ 3207: 花神的嘲讽计划Ⅰ( hash + 可持久化线段树 )
O(NK)暴力搞出所有子串的哈希值, 然后就对哈希值离散化建权值线段树, 就是主席树的经典做法了.总时间复杂度O(NK+(N+Q)logN) ----------------------------- ...
- bzoj 3207 花神的嘲讽计划Ⅰ(哈希法+主席树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3207 [题意] 给定一个文本串,多次询问K长的模式串是否在文本[l,r]区间内出现. ...
- [BZOJ 3207] 花神的嘲讽计划Ⅰ【Hash + 可持久化线段树】
题目链接:BZOJ - 3207 题目分析 先使用Hash,把每个长度为 k 的序列转为一个整数,然后题目就转化为了询问某个区间内有没有整数 x . 这一步可以使用可持久化线段树来做,虽然感觉可以有更 ...
- [BZOJ3207] 花神的嘲讽计划Ⅰ (主席树)
Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...
- bzoj 3207: 花神的嘲讽计划Ⅰ
Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: "哎你傻不傻的![hqz:大笨J]" "这道题又被J屎过了!!" "J这程序 ...
- BZOJ 3207: 花神的嘲讽计划Ⅰ(莫队+哈希)
传送门 解题思路 刚开始写了个莫队+哈希+\(map\)的\(O(n\sqrt(n)log(n)\)的辣鸡做法,\(T\)飞了.后来看了看别人博客发现其实并不用拿\(map\)当桶存那些哈希值.因为只 ...
- BZOJ 3207 花神的嘲讽计划Ⅰ(函数式线段树)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3207 题意:给出一个数列,若干询问.每个询问查询[L,R]区间内是否存在某个长度为K的子 ...
- 【BZOJ】【3207】花神的嘲讽计划 I
字符串Hash+可持久化线段树 好神奇的转化…… 蒟蒻一开始还去想AC自动机去了……然而由于a[i]的范围是小于等于n,怎么也想不出一个时间复杂度合理的方法 膜拜了题解0.0原来是字符串Hash! 首 ...
随机推荐
- CentOS 安装图形化界面方法
登录系统,使用yum 安装 #yum groupinstall 'X Window System' -y 安装GNOME桌面环境 #yum groupinstall 'GNOME Desktop ...
- 构建微服务开发环境6————利用npm安装前端框架
[内容指引] 安装JQuery组件: 安装BootStrap前端框架; 安装AngularJs前端框架: 安装angular动画模块: 安装angular的ui-router模块. 一.进入下载的目标 ...
- 命令模式和php实现
命令模式: 命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化:对请求排队或者记录请求日志,以及支持可撤销的操作.命令模式是一种对象行为型模 ...
- [ Luogu 3709 ] 大爷的字符串题
\(\\\) Description 原题题面太过混乱出题人语文凉凉 给出一个长为 \(n\) 的数列 \(A\) ,多次询问: 对于一个区间 \([L_i,R_i]\),把区间内的所有数最少划分成多 ...
- P1967 货车运输 未完成
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #inclu ...
- 初识Vivado
Vivado 设计套件包括高度集成的设计环境和新一代从系统到 IC 级的工具,这些均建立在共享的可扩展数据模型和通用调试环境基础上.这也是一个基于 AMBA AXI4 互联规范.IP-XACT IP ...
- ETH Dapp 体验报告
Dapp 体验报告 Dapp是分散式的应用程序.DApp运行在去中心化的网络上,也就是区块链网络中.网络中不存在中心化的节点可以完整的控制DApp. 必须依赖合约部署,没有一个中心化的服务器托管. 对 ...
- codevs 1519 过路费
时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 在某个遥远的国家里,有 n个城市.编号为 1,2,3,…,n.这个国家的政府 ...
- javaee 第七周作业
一.什么是JSON? JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一 ...
- DROP SEQUENCE - 删除一个序列
SYNOPSIS DROP SEQUENCE name [, ...] [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP SEQUENCE 从数据库中删除序列号生成 ...