因为他的相似是在排完序下的

那我就在排序的情况下hash啊

这怎么hash啊

主席树啊!

没了

 #include <bits/stdc++.h>
#define MAXNODE 5000000
#define MAX 200000
using namespace std;
int NODE,T,n,q,_l,_r,L,R;
int a[MAX],val[MAX],ma[MAX],root[MAX];
int tr[MAXNODE],c[MAXNODE][];
int change(int acc,int l,int r,int x,int y)
{
if(l==r)
{
tr[++NODE]=y+tr[acc];
c[NODE][]=c[NODE][]=;
return NODE;
}
int now=++NODE,mid=l+r>>;
if(x<=mid)
c[now][]=change(c[acc][],l,mid,x,y),
c[now][]=c[acc][];
else
c[now][]=c[acc][],
c[now][]=change(c[acc][],mid+,r,x,y);
tr[now]=tr[c[now][]]+tr[c[now][]];
return now;
}
int tre(int rt,int x)
{
int ret=;
for(int now=root[rt],l=,r=MAX;l<r;)
{
int mid=l+r>>;
if(x<=mid)
{
r=mid,now=c[now][];
if(r==x) return ret+tr[now];
}
if(x>mid)
l=mid+,ret+=tr[c[now][]],now=c[now][];
}
return ret;
}
int ha(int l,int r,int L,int R)
{
return tre(r,R)-tre(r,L-)-tre(l-,R)+tre(l-,L-);
}
int main()
{
srand(time());
for(scanf("%d",&T);T;T--)
{
scanf("%d%d",&n,&q);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
val[i]=ma[a[i]]?ma[a[i]]:(ma[a[i]]=rand());
// val[i]=a[i];
}
root[]=;c[][]=c[][]=;tr[]=;NODE=;
for(int i=;i<=n;i++)
root[i]=change(root[i-],,MAX,a[i],val[i]);
for(int i=;i<=q;i++)
{
scanf("%d%d%d%d",&_l,&_r,&L,&R);
bool gg=;
for(int l=,r=MAX;l<r;)
{
int mid=l+r>>;
if(ha(_l,_r,l,mid)==ha(L,R,l,mid))
l=mid+;
else
if(ha(_l,_r,mid+,r)==ha(L,R,mid+,r))
r=mid;
else
{
int ll=l,rr=mid;
for(;ll<rr;)
{
int mm=ll+rr>>;
if(ha(_l,_r,ll,mm)==ha(L,R,ll,mm)) ll=mm+;
else rr=mm;
}
int tt=ll;
ll=mid+,rr=r;
for(;ll<rr;)
{
int mm=ll+rr>>;
if(ha(_l,_r,mm+,rr)==ha(L,R,mm+,rr)) rr=mm;
else ll=mm+;
}
int ttt=ll;
if(tt==ttt- || ha(_l,_r,tt+,ttt-)== && ha(L,R,tt+,ttt-)==) break;
else
{
gg=;
break;
}
}
}
puts((gg==)?"NO":"YES");
}
}
return ;
}

loj#6169. 相似序列 hash+主席树的更多相关文章

  1. 【LOJ#6073】距离(主席树)

    [LOJ#6073]距离(主席树) 题面 LOJ 题解 两点间的距离是\(dep[x]+dep[y]-2dep[LCA]\). 那么题目要求的东西拆开维护,唯一不好做的就是\(2dep[LCA]\). ...

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

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

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

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

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

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

  5. 【洛谷5294】[HNOI2019] 序列(主席树维护单调栈+二分)

    点此看题面 大致题意: 给你一个长度为\(n\)的序列\(A\),每次询问修改一个元素(只对当前询问有效),然后让你找到一个不下降序列\(B\),使得这两个序列相应位置之差的平方和最小,并输出这个最小 ...

  6. [CSP-S模拟测试]:序列(主席树)

    题目描述 小$A$把自己之前得到的序列展示给了小$B$,不过这一次,他并不要求小$B$模仿他之前的行为.他给了小$B$一些询问,每个询问都是$l\ r\ x$的形式,要求小$B$数出在序列的第$l$个 ...

  7. 2018.10.08 NOIP模拟 序列(主席树)

    传送门 T2防ak题? 其实也不是很难(考试时sb了). 直接变形一下求出区间长度在[l2,r2][l2,r2][l2,r2]之间,中位数≤l1−1\le l1-1≤l1−1的区间数,和区间长度在[l ...

  8. LOJ 2555 「CTSC2018」混合果汁——主席树

    题目:https://loj.ac/problem/2555 二分答案,在可以选的果汁中,从价格最小的开始选. 按价格排序,每次可以选的就是一个前缀.对序列建主席树,以价格为角标,维护体积和.体积*价 ...

  9. 主席树||可持久化线段树||BZOJ 3524: [Poi2014]Couriers||BZOJ 2223: [Coci 2009]PATULJCI||Luogu P3567 [POI2014]KUR-Couriers

    题目:[POI2014]KUR-Couriers 题解: 要求出现次数大于(R-L+1)/2的数,这样的数最多只有一个.我们对序列做主席树,每个节点记录出现的次数和(sum).(这里忽略版本差值问题) ...

随机推荐

  1. Linux_学习_02_ 重启tomcat与查看tomcat日志

    一.重启tomcat服务器 cd /home/ehlhec/tomcat_dingtalk/bin ./shutdown.sh ps -ef|grep java ./startup.sh (1) 进入 ...

  2. hdu1520树形dp入门

    题目链接 题意:要开派对,邀请了上司就不能邀请他的下属,邀请了下属就不能邀请他的上司,每个人有一个值,求邀请的人的总值最大 第一行给出一个数n,代表有n个人. 下面n行分别给出n个人的的值 再下面n行 ...

  3. div img 垂直水平居中

    <style> div { width: 600px; height: 578px; text-align: center; display: table-cell; vertical-a ...

  4. 【Lintcode】095.Validate Binary Search Tree

    题目: Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is define ...

  5. svn 操作手册

    1.执行下列指令安装    sudo apt-get install subversion   2.  创建版本库       sudo mkdir /home/svn    sudo mkdir / ...

  6. PHP函数---$_Get()和$_Post()的用法

    一.$_Get()和$_Post()函数是用来传值的,即对应两种提交表单的方法,get和post. 二.$_Get方法 (1)获取通过URL的传值 Example 1 新建两个PHP文件,1.php, ...

  7. ubuntu下 修改主机名

    sudo gedit /etc/hostname 写入: sudo gedit /etc/hosts

  8. POJ3067(树状数组:统计数字出现个数)

    Japan Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24151   Accepted: 6535 Descriptio ...

  9. HTTP协议详解之http请求分析

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  10. InformationSecurity:template

    ylbtech-InformationSecurity: 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:ht ...