题意

给你一个1~n排列,问有没有一个等差数列(长度至少为3)

题解

我居然自己想到了正解。

但我最后写挂了,所以我又看了题解。

我们维护了一个以权值为下标的01序列。

我们扫描整个序列。对于每一个正在扫描的数,我们判断以这个数的权值作为对称点,01序列是否对称。

这个序列用权值树状数组维护就行。

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#define LL long long
const LL mod=1e9+;
int n,t;
const int N=;
LL pw[N],c1[N],c2[N];
int a[N];
int min(int a,int b){
if(a<b)return a;
else return b;
}
int lowbit(int x){
return x&(-x);
}
LL check1(int x){
LL ans=;
for(int i=x;i>=;i-=lowbit(i)){
ans=(ans+(c1[i]*pw[x-i])%mod)%mod;
}
return ans;
}
LL check2(int x){
LL ans=;
for(int i=x;i>=;i-=lowbit(i)){
ans=(ans+(c2[i]*pw[x-i])%mod)%mod;
}
return ans;
}
LL add1(int x){
for(int i=x;i<=n;i+=lowbit(i)){
c1[i]=(c1[i]+pw[i-x])%mod;
}
}
LL add2(int x){
for(int i=x;i<=n;i+=lowbit(i)){
c2[i]=(c2[i]+pw[i-x])%mod;
}
return ;
}
LL query1(int l,int r){
LL p=check1(l-),q=check1(r);
return ((q-p*pw[r-l+])%mod+mod)%mod;
}
LL query2(int l,int r){
LL p=check2(l-),q=check2(r);
return ((q-p*pw[r-l+])%mod+mod)%mod;
}
int main(){
scanf("%d",&t);
pw[]=;
for(int i=;i<=;i++)pw[i]=(pw[i-]*(LL))%mod;
for(int z=;z<=t;z++){
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
memset(c1,,sizeof(c1));memset(c2,,sizeof(c2));
for(int i=;i<=n;i++){
int x=a[i];
int len=min(n-x,x-);
if(len&&query1(x-len,x-)!=query2(n-x-len+,n-x)){printf("Y\n");break;}
add1(x);add2(n-x+);
if(i==n)printf("N\n");
}
}
return ;
}

bzoj2124 等差子序列(树状数组+hash)的更多相关文章

  1. 【BZOJ2124】等差子序列 树状数组维护hash值

    [BZOJ2124]等差子序列 Description 给一个1到N的排列{Ai},询问是否存在1<=p1<p2<p3<p4<p5<…<pLen<=N ...

  2. CF452F Permutations/Luogu2757 等差子序列 树状数组、Hash

    传送门--Luogu 传送门--Codeforces 如果存在长度\(>3\)的等差子序列,那么一定存在长度\(=3\)的等差子序列,所以我们只需要找长度为\(3\)的等差子序列.可以枚举等差子 ...

  3. bzoj 2124 等差子序列 树状数组维护hash+回文串

    等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 1919  Solved: 713[Submit][Status][Discuss] Desc ...

  4. bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛【dp+树状数组+hash】

    最长上升子序列.虽然数据可以直接n方但是另写了个nlogn的 转移:f[i]=max(f[j]+1)(a[j]<a[i]) O(n^2) #include<iostream> #in ...

  5. 【bzoj5157】[Tjoi2014]上升子序列 树状数组

    题目描述 求一个数列本质不同的至少含有两个元素的上升子序列数目模10^9+7的结果. 题解 树状数组 傻逼题,离散化后直接使用树状数组统计即可.由于要求本质不同,因此一个数要减去它前一次出现时的贡献( ...

  6. Maximum Subsequence Sum【最大连续子序列+树状数组解决】

    Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...

  7. bzoj5157: [Tjoi2014]上升子序列(树状数组LIS)

    5157: [Tjoi2014]上升子序列 题目:传送门 题解: 学一下nlogn的树状数组求最长上生子序列就ok(%爆大佬) 离散化之后,用一个数组记录一下,直接树状数组做 吐槽:妈耶...一开始不 ...

  8. BZOJ2124: 等差子序列(树状数组&hash -> bitset 求是否存在长度为3的等差数列)

    2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 2354  Solved: 826[Submit][Status][Discuss ...

  9. BZOJ 3173 最长上升子序列(树状数组+二分+线段树)

    给定一个序列,初始为空.现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 由于序列是顺序插入的,所以当前插入的数字对之 ...

随机推荐

  1. mybatis与spring整合配置

    mybatis与spring整合配置: 第一种方式:(此处配置扫描的包路径.注解.每个mapper类上面需要加@Repository才能纳入spring的bean管理器中) <!-- 自动扫描m ...

  2. IOS系统设置页面跳转

    目录: 跳转 iOS10- 版本跳转url转 iOS10+ 版本跳转url转 跳转符 跳转到系统设置界面代码: // 自己应用的设置界面:url = UIApplicationOpenSettings ...

  3. P3809 【模版】后缀排序

    题目背景 这是一道模版题. 题目描述 读入一个长度为 nn 的由大小写英文字母或数字组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置.位置编 ...

  4. 安装Windows服务方法

    用sc create 服务名 binPath="路径",不要用老方法InstallUtil会出现一堆的错误

  5. ASP.NET使用MergeInto做数据同步,同步SQLSERVER不同数据库的相同表结构的数据

    public string SynchronousData() { ReturnJson Rejson = new ReturnJson(); //将WebConfig中的数据库连接name中的值写进 ...

  6. Activiti BPMN 2.0 designer eclipse插件安装

    官方网是这样说的: https://www.activiti.org/userguide/index.html#springSpringBoot The following installation ...

  7. RocketMQ学习笔记(3)----RocketMQ物理结构和逻辑部署结构

    1. RocketMQ的物理结构 RecketMQ网络部署的特点: Name Server是一个几乎无状态特点,可集群部署,节点之间无任何信息同步的(相对于zookeeper是较为轻量级的). Bro ...

  8. 优动漫PAINT基础系列之拾色器教学

    在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...

  9. Matlab---从入门到精通 Chapter 4 编程基础

    ---恢复内容开始--- 4-1 M文件编辑器 在命令窗口输入edit命令,可以打开M文件编辑器,创建新的M文件 在命令行中输入edit filename,那么可以打开在当前目录环境下的M文件 4-2 ...

  10. java+jsp+sqlserver实现简单的增删改查操作 连接数据库代码

    1,网站系统开发需要掌握的技术 (1)网页设计语言,html语言css语言等 (2)Java语言 (3)数据库 (4)等 2,源程序代码 (1) 连接数据库代码 package com.jaovo.m ...