BZOJ3207 花神的嘲讽计划
hash值建主席树。
垃圾题面没有熟虑范围害我MLE——>RE。
By:大奕哥
#include<bits/stdc++.h>
#define unll unsigned long long
#define inf 18446744073709551615UL
using namespace std;
const int N=;
struct node{
int l,r,s;
}t[];
int a[N],rt[N],n,m,k,cnt;unll H[N],pos[N],num;
void change(int &x,unll l,unll r,unll w)
{
t[++cnt]=t[x];x=cnt;
if(l==r){
t[x].s++;return;
}
int mid=l+r>>;
if(w<=mid)change(t[x].l,l,mid,w);
else change(t[x].r,mid+,r,w);
t[x].s=t[t[x].l].s+t[t[x].r].s;
}
int query(int x,int y,unll l,unll r,unll w)
{
if(l==r)return t[x].s-t[y].s;
unll mid=l+r>>;
if(w<=mid)return query(t[x].l,t[y].l,l,mid,w);
else return query(t[x].r,t[y].r,mid+,r,w);
}
int main()
{
scanf("%d%d%d",&n,&m,&k);unll base=;
for(int i=;i<=n;++i)scanf("%d",&a[i]);
for(int i=;i<=k;++i)base*=;
for(int i=;i<=n;++i)
{
H[i]=H[i-]*+a[i];
pos[++num]=H[i]-H[i-k]*base;
}
sort(pos+,pos++num);num=unique(pos+,pos++num)-pos-;
for(int i=k;i<=n;++i)
rt[i]=rt[i-],change(rt[i],,num,lower_bound(pos+,pos++num,H[i]-H[i-k]*base)-pos);
int l,r,x; unll w;
for(int i=;i<=m;++i)
{
scanf("%d%d",&l,&r);w=;
for(int j=;j<=k;++j)
{
scanf("%d",&x);
w=w*+x;
}
int p=lower_bound(pos+,pos++num,w)-pos;
if(pos[p]!=w)puts("Yes");
else if(query(rt[r],rt[l+k-],,num,p))puts("No");
else puts("Yes");
}
return ;
}
BZOJ3207 花神的嘲讽计划的更多相关文章
- BZOJ3207: 花神的嘲讽计划Ⅰ(hash)
3207: 花神的嘲讽计划Ⅰ Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3569 Solved: 1258[Submit][Status][Di ...
- [bzoj3207][花神的嘲讽计划Ⅰ] (字符串哈希+主席树)
Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...
- [BZOJ3207] 花神的嘲讽计划Ⅰ (主席树)
Description 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天D ...
- BZOJ3207花神的嘲讽计划Ⅰ——主席树+hash
题目描述 背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的![hqz:大笨J]” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟 ...
- BZOJ3207 花神的嘲讽计划I
Time Limit: 10 Sec Memory Limit: 128 MB Summary 给你一个模式串P,q个询问,对每个询问回答从Pl到Pr是否存在与给定串相同的子串,同时有所有的给定串长度 ...
- BZOJ3207: 花神的嘲讽计划Ⅰ
显然hash,然后stl随便搞. #include<bits/stdc++.h> #define N 100005 using namespace std; typedef unsigne ...
- 【字符串哈希】【莫队算法】bzoj3207 花神的嘲讽计划Ⅰ
既然询问的长度是确定的,那么我们可以将所有长度为K的字串弄个哈希值出来,这样字串存在性=>哈希值存在性. 自然上溢哈希,base=107比较不错. 序列长度n=>n-K+1 询问区间[x, ...
- bzoj3207花神的嘲讽计划Ⅰ
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=3207 给定一个原字符串和m个询问,每次查询原字符串[l,r]内是否包含给定字符串s (len( ...
- [bzoj3207]花神的嘲讽计划Ⅰ[可持久化线段树,hash]
将每k个数字求一个哈希值,存入可持久化线段树,直接查询即可 #include <iostream> #include <algorithm> #include <cstd ...
随机推荐
- 自然语言处理词向量模型-word2vec
自然语言处理与深度学习: 语言模型: N-gram模型: N-Gram模型:在自然语言里有一个模型叫做n-gram,表示文字或语言中的n个连续的单词组成序列.在进行自然语言分析时,使用n-gram或者 ...
- thinkphp报错Call to undefined method app\index\controller\Index::fetch()
因为要写一个系统,所以又重新下载了thinkphp,然后安装了一下.回忆起这个问题很容易让新手朋友费解.会出现如下报错:Call to undefined method app\index\contr ...
- connect系统调用
/* * Attempt to connect to a socket with the server address. The address * is in user space so we ve ...
- git clone命令使用
git clone命令使用 分类: 项目构建2013-06-26 15:43 38660人阅读 评论(2) 收藏 举报 GitClone git clone 命令参数: usage: git clon ...
- 数据迁移之Sqoop
一 简介 Apache Sqoop(TM)是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具 . 官方下载地址:http://www.apache.org ...
- day2编写购物商城(1)
作业:购物商城 商品展示,价格 买,加入购物车 付款,钱不够 具体实现了如下功能: 1.可购买的商品信息显示 2.显示购物车内的商品信息.数量.总金额 3.购物车内的商品数量进行增加.减少和商 ...
- 饼图tooltip
@{ ViewBag.Title = "pie"; } <h2>pie</h2> <div id="main" style=&qu ...
- 【POJ】1740.A New Stone Game
题解 想去学习一下博弈论的SG函数 不过貌似这道题就是猜结论并且证明 题意是,随便选择一堆石子,扔掉至少一个,然后从扔石子的这堆里选择任意多(可以不选)放到其他任意多的未选择完的石堆里 一堆石子,先手 ...
- Xposed模块开发教程
转:http://vbill.github.io/2015/02/10/xposed-1/ http://blog.csdn.net/zhangmiaoping23/article/detai ...
- 码云Android项目构建注意事项(转载)
1.ant项目 build.xml必须位于项目根目录. 2.maven项目 pom.xml必须位于项目根目录. 3.gradle项目 由于gradle的配置灵活,我们做了一些规范,并且增加了一下机制来 ...