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 ...
随机推荐
- 键盘ASCII码
回车键 -- CR 键0x0d -- 16进制13 -- 10 进制'\r' -- 也可以 换行键 -- LF0x0a -- 16进制10 -- 10 进制'\n' -- 也可以 esc键 ...
- Java标记接口
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------这篇博客主要来谈谈" ...
- AdvStringGrid 固定行、列
- ZOJ 3469 Food Delivery(区间DP好题)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4255 题目大意:在x轴上有n个客人,每个客人每分钟增加的愤怒值不同. ...
- Oracle约束
1.非空约束 DROP TABLE member PURGE; CREATE TABLE member( mid NUMBER, name ) NOT NULL ); 2.唯一约束 DROP TABL ...
- 配置JDK-Java运行环境
1.将Java安装包上传到服务器某目录,如E:\jdk-7u45-windows-x64.exe 2.上传后运行jdk-7u45-windows-x64.exe 3.点击[下一步],后选择[更改],改 ...
- OneNote无法同时设置中英文字体设置解决办法
如果你是一位OneNote老用户,无论是2003.2007还是2010或者最新的2013版本,都一直存在一个Bug,就是无法同时设置中英文字体(比如在Word中就可以分别设置不同的).我搜了一下,在微 ...
- HTML5练习1
制作简历 主要代码: <!doctype html> <html> <head> <meta charset="utf-8"> &l ...
- oracle查看所有表及各表行数
https://zhidao.baidu.com/question/131972827.html
- Asp.net mvc 实时生成缩率图到硬盘
之前对于缩率图的处理是在图片上传到服务器之后,同步生成两张不同尺寸的缩率供前端调用,刚开始还能满足需求,慢慢的随着前端展示的多样化,缩率图已不能前端展示的需求,所以考虑做一个实时生成图片缩率图服务. ...