bzoj 2124 等差子序列 (线段树维护hash)
2124: 等差子序列
Time Limit: 3 Sec Memory Limit: 259 MB
Submit: 1922 Solved: 714
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
3
1 3 2
3
3 2 1
Sample Output
Y
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define lson l,m,rt<<1
- #define rson m+1,r,rt<<1|1
- #define mid ll m = (l + r) >> 1
- const ll M = 1e5+;
- const ll md = 1e9+;
- ll suml[M<<],sumr[M<<],a[M],pw[M];
- void pushup(ll l,ll r,ll rt){
- ll len = r - l + ;
- ll m = len / ;
- suml[rt] = (suml[rt<<]*pw[m]+suml[rt<<|])%md;
- sumr[rt] = (sumr[rt<<|]*pw[len-m]+sumr[rt<<])%md;
- return ;
- }
- void update(ll p,ll l,ll r,ll rt){
- if(l == r){
- suml[rt] = sumr[rt] = ;
- return ;
- }
- mid;
- if(p <= m) update(p,lson);
- else update(p,rson);
- pushup(l,r,rt);
- }
- ll queryl(ll L,ll R,ll l,ll r,ll rt){
- if(L > R) return ;
- if(L == l&&R == r) return suml[rt];
- mid;
- if(L > m) return queryl(L,R,rson);
- else if(R <= m) return queryl(L,R,lson);
- else return (queryl(L,m,lson)*pw[R-m]+queryl(m+,R,rson))%md;
- }
- ll queryr(ll L,ll R,ll l,ll r,ll rt){
- if(L > R) return ;
- if(L == l&&R == r) return sumr[rt];
- mid;
- if(L > m) return queryr(L,R,rson);
- else if(R <= m) return queryr(L,R,lson);
- else return (queryr(L,m,lson)+queryr(m+,R,rson)*pw[m-L+])%md;
- }
- int main()
- {
- ll t,n;
- ios::sync_with_stdio();
- cin.tie(); cout.tie();
- cin>>t;
- pw[] = ;
- for(ll i = ;i <= ;i++)
- pw[i] = (pw[i-]*)%md;
- while(t--){
- cin>>n;
- memset(suml,,sizeof(suml));
- memset(sumr,,sizeof(sumr));
- memset(a,,sizeof(a));
- ll flag = ;
- for(ll i = ;i <= n;i ++) cin>>a[i];
- for(ll i = ;i <= n;i ++){
- ll len = min(a[i]-,n-a[i]);
- ll t1 = queryl(a[i]-len,a[i]-,,n,);
- ll t2 = queryr(a[i]+,a[i]+len,,n,);
- if(t1!=t2){
- flag = ;break;
- }
- update(a[i],,n,);
- }
- if(!flag) cout<<"Y"<<endl;
- else cout<<"N"<<endl;
- }
- }
bzoj 2124 等差子序列 (线段树维护hash)的更多相关文章
- BZOJ 2124: 等差子序列 线段树维护hash
2124: 等差子序列 Description 给一个1到N的排列{Ai},询问是否存在1<=p1=3),使得Ap1,Ap2,Ap3,…ApLen是一个等差序列. Input 输入的第一行包含一 ...
- BZOJ 2124等差子序列 线段树&&hash
[题目描述 Description] 给一个 1 到 N 的排列{Ai},询问是否存在 1<=p1<p2<p3<p4<p5<…<pLen<=N(Len& ...
- bzoj2124: 等差子序列线段树+hash
bzoj2124: 等差子序列线段树+hash 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2124 思路 找大于3的等差数列其实就是找等于 ...
- BZOJ 2124: 等差子序列
Sol 线段树+Hash. 首先暴力 等差子序列至少3项就可以了,就枚举中项,枚举公差就可以了,只需要一个数在中项前出现,另一个数在中项前没出现过就可以了.复杂度 \(O(n^2)\) 然后我想了一个 ...
- cf213E 线段树维护hash
链接 https://codeforces.com/contest/213/problem/E 题目大意 给出两个排列a.b,长度分别为n.m,你需要计算有多少个x,使 得\(a_1 + x; a_2 ...
- MemSQL Start[c]UP 2.0 - Round 1 F - Permutation 思维+线段树维护hash值
F - Permutation 思路:对于当前的值x, 只需要知道x + k, x - k这两个值是否出现在其左右两侧,又因为每个值只有一个, 所以可以转换成,x+k, x-k在到x所在位置的时候是否 ...
- BZOJ2124:等差子序列(线段树,hash)
Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pLen<=N (Len>=3), 使得A ...
- [bzoj2124]等差子序列——线段树+字符串哈希
题目大意 给一个1到N的排列\(A_i\),询问是否存在\(p_i\),\(i>=3\),使得\(A_{p_1}, A_{p_2}, ... ,A_{p_len}\)是一个等差序列. 题解 显然 ...
- bzoj 4184: shallot (线段树维护线性基)
题面 \(solution:\) 这一题绝对算的上是一道经典的例题,它向我们诠释了一种新的线段树维护方式(神犇可以跳过了).像这一类需要加入又需要维护删除的问题,我们曾经是遇到过的像莫对,线段树... ...
随机推荐
- tikz中谐振子(弹簧)的绘制,以及声子色散关系的绘制
今天整理了简正模导出声子的内容,其中用tikz画了两张图.一张是整个问题的物理模型,效果如下 这幅图的绘制参考了https://tex.stackexchange.com/questions/4160 ...
- JavaWeb项目学习教程(2) 系统数据库设计
最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码.但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了.不过博客还是 ...
- 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)
如何安装最新版本 1.10.0: 如果已安装旧版本,先卸载 yum remove subversion* 查看当前可安装的版本 yum list | grep subversion 可以去官网下载安装 ...
- 《spark机器学习 第二版》 蔡立宇 分享 pdf下载
链接:https://pan.baidu.com/s/15Y14eAnfj8zf5mXdixbVeQ 提取码:rkdt
- lua模块注册
Lua自带的模块并不多,好处就是Lua足够的小,毕竟它的设计目标是定位成一个嵌入式的轻量级语言的. 相关的函数index2adr static TValue *index2adr (lua_State ...
- 32bit 天堂2 windows 2000 server架设教程
服务器的软件要求: Microsoft Windows 2000 Server or advanced Server license 100 Microsoft SQL Server 2000 Ent ...
- PLSQL触发器,游标
--触发器 drop table emp_log create table emp_log( empno number, log_date date, new_salary number, actio ...
- C#如何在各类控件中输入\输出数据
文本框:TextBox Text - 按钮文字 TextBox.text=""; s=TextBox.text; 单选按钮+复选按钮 RadioButton,CheckBox Te ...
- MySQL基础(一)
首先需要安装MySOL,这里我是在windows环境下安装的,具体教程可以参考https://www.cnblogs.com/xsmile/p/7753984.html,不过要注意安装过程可能会不太顺 ...
- CentOS 7 安装图形化界面及 Xshell 连接
CentOS 比较适合用作服务器的系统,之前用过 CentOS 6,但是在配置 Nginx 的时候,发现很多语句版本7的系统都进行了更新,而且网上针对版本7的例子会更多一下,遂将系统换成版本7. 下载 ...