题目大意:

给定一个n个数的序列和m个询问(n,m<=100000)和k,每个询问包含k+2个数字:l,r,b[1],b[2]...b[k],要求输出b[1]~b[k]在[l,r]中是否出现。

思路:
把所有连续的k个数字hash一下,然后扔进主席树,询问时在主席树中查询就可以了。

注意(坑)点:
1、hash值要用unsigned long long存

2、如果直接求l+r>>1会爆,所以要改成(l>>1)+(r>>1)+(l&r&1)

3、Yes和No是反的。。。

代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<limits.h>
using namespace std;
#define N 100001
#define M ULLONG_MAX
#define ll unsigned long long
inline char Nc(){
static char buf[],*p1=buf,*p2=buf;
if(p1==p2){
p2=(p1=buf)+fread(buf,,,stdin);
if(p1==p2)return EOF;
}
return *p1++;
}
inline void Read(int& x){
char c=Nc(),b=;
for(;c<''||c>'';c=Nc())if(c=='-')b=-;
for(x=;c>=''&&c<='';x=(x<<)+(x<<)+c-,c=Nc());x*=b;
}
struct Gj{
int l,r,w;
}c[N*];
int Num,i,j,k,n,m,Rt[N],x,y,z,a[N];
ll Hash[N],w,h;
inline void Update(int& Node,ll l,ll r,ll x){
c[++Num]=c[Node];Node=Num;
c[Node].w++;
if(l==r)return;
ll Mid=(l>>)+(r>>)+(l&r&);
if(x<=Mid)Update(c[Node].l,l,Mid,x);else Update(c[Node].r,Mid+,r,x);
}
inline bool Query(int x,int y,ll l,ll r,ll h){
if(c[y].w-c[x].w==)return ;
if(l==r)return ;
ll Mid=(l>>)+(r>>)+(l&r&);
if(h<=Mid)return Query(c[x].l,c[y].l,l,Mid,h);else return Query(c[x].r,c[y].r,Mid+,r,h);
}
int main()
{
Read(n);Read(m);Read(k);
for(i=;i<=n;i++)Read(a[i]);
for(i=;i<=n;i++)Hash[i]=Hash[i-]*+a[i];
for(w=,i=;i<=k;i++)w*=;
for(i=k;i<=n;i++){
Rt[i]=Rt[i-];
Update(Rt[i],,M,Hash[i]-Hash[i-k]*w);
}
for(i=;i<=m;i++){
Read(x);Read(y);
for(h=,j=;j<=k;j++)Read(z),h=h*+z;
if(y-x+>=k&&Query(Rt[x+k-],Rt[y],,M,h))puts("No");else puts("Yes");
}
return ;
}

bzoj3207

bzoj3207--Hash+主席树的更多相关文章

  1. 【BZOJ3207】花神的嘲讽计划Ⅰ Hash+主席树

    [BZOJ3207]花神的嘲讽计划Ⅰ Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快 ...

  2. BZOJ_3207_花神的嘲讽计划1_(Hash+主席树)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=3207 给出一个长度为\(n\)的串,以及\(m\)个长度为\(k\)的串,求每个长度为\(k\ ...

  3. loj#6169. 相似序列 hash+主席树

    因为他的相似是在排完序下的 那我就在排序的情况下hash啊 这怎么hash啊 主席树啊! 没了 #include <bits/stdc++.h> #define MAXNODE 50000 ...

  4. HDU 5790 Prefix(Hash + 主席树)

    题目链接  Prefix 题意  给定一个字符串序列,求第$l$个字符串到第$r$个字符串之间有多少个不同的前缀 强制在线 考虑$Hash$ 首先把所有前缀都$hash$出来,按顺序组成一个长度不超过 ...

  5. BZOJ3207花神的嘲讽计划Ⅰ——主席树+hash

    题目描述 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟 ...

  6. Codeforces 464E The Classic Problem (最短路 + 主席树 + hash)

    题意及思路 这个题加深了我对主席树的理解,是个好题.每次更新某个点的距离时,是以之前对这个点的插入操作形成的线段树为基础,在O(logn)的时间中造出了一颗新的线段树,相比直接创建n颗线段树更省时间. ...

  7. Codeforces 464E #265 (Div. 1) E. The Classic Problem 主席树+Hash

    E. The Classic Problem http://codeforces.com/problemset/problem/464/E 题意:给你一张无向带权图,求S-T的最短路,并输出路径.边权 ...

  8. bzoj 3207 花神的嘲讽计划Ⅰ 主席树+hash

    花神的嘲讽计划Ⅰ Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3112  Solved: 1086[Submit][Status][Discuss] ...

  9. [BZOJ3207] 花神的嘲讽计划Ⅰ (主席树)

    Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...

  10. 2018.10.16 NOIP模拟 长者(主席树+hash)

    传送门 考试的时候开始sb的以为需要可持久化trietrietrie树,发现建树时空都是O(n2)O(n^2)O(n2)的. 然后发现由于每次只从原来的字符串改一个字符. 因此直接主席树维护区间has ...

随机推荐

  1. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  2. Restful资源文章

    理解RESTful架构 RESTful API设计指南 RESTful架构详解 NodeJs的RESTful API

  3. 在 ML2 中配置 OVS flat network - 每天5分钟玩转 OpenStack(133)

    前面讨论了 OVS local network,今天开始学习 flat network. flat network 是不带 tag 的网络,宿主机的物理网卡通过网桥与 flat network 连接, ...

  4. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. c#多线程

    一.使用线程的理由 1.可以使用线程将代码同其他代码隔离,提高应用程序的可靠性. 2.可以使用线程来简化编码. 3.可以使用线程来实现并发执行. 二.基本知识 1.进程与线程:进程作为操作系统执行程序 ...

  7. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  8. VSCode调试go语言出现:exec: "gcc": executable file not found in %PATH%

    1.问题描述 由于安装VS15 Preview 5,搞的系统由重新安装一次:在用vscdoe编译go语言时,出现以下问题: # odbcexec: "gcc": executabl ...

  9. yaf的简单入门

    1.目录结构: 2.入口文件 入口文件是所有请求的入口,一般都借助于rewrite规则,把所有的请求都重定向到这个入口文件. 一个经典的入口文件  public/index.php 3.重写规则 需要 ...

  10. IOS之Objective-C学习 ARC下的单例模式

    单例模式是我常用的一种设计模式,最常见的用途就是用来保存数据并且传递数据.这都归功于单例模式的特性,首先就让我为大家简单介绍一下单例模式的特性. 单例模式的三大特性: 1.某个类只能有一个实例: 2. ...