hhh

Posted qq8260573

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hhh相关的知识,希望对你有一定的参考价值。

hhh

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef unsigned int uint;
 4 const int N=2e5+5;
 5 int n,now,len[N<<2];
 6 uint hsh0,hsh1,Pow[N],hsh[2][N<<2];
 7 inline int read() {
 8     int x=0; char c=getchar();
 9     while(c<0||c>9) c=getchar();
10     while(c>=0&&c<=9) x=(x<<3)+(x<<1)+c-0,c=getchar();
11     return x;
12 }
13 
14 int ls(int p) {return p<<1;}
15 int rs(int p) {return p<<1|1;}
16 void build(int p,int l,int r) {
17     if(l==r) {len[p]=1; return ;}
18     int Mid=(l+r)>>1;
19     build(ls(p),l,Mid);
20     build(rs(p),Mid+1,r);
21     len[p]=len[ls(p)]+len[rs(p)];
22 }
23 void get(int p) {
24     hsh[0][p]=hsh[0][ls(p)]+hsh[0][rs(p)]*Pow[len[ls(p)]];
25     hsh[1][p]=hsh[1][ls(p)]*Pow[len[rs(p)]]+hsh[1][rs(p)];
26 }
27 void update(int x,int p,int l,int r) {
28     if(l==r) {hsh[0][p]=hsh[1][p]=1; return ;}
29     int Mid=(l+r)>>1;
30     if(x<=Mid) update(x,ls(p),l,Mid);
31     else update(x,rs(p),Mid+1,r);
32     get(p);
33 }
34 void query0(int ql,int qr,int p,int l,int r) {
35     if(ql<=l&&r<=qr) {
36         hsh0+=hsh[0][p]*Pow[now];
37         now+=len[p];
38         return ;
39     }
40     int Mid=(l+r)>>1;
41     if(ql<=Mid) query0(ql,qr,ls(p),l,Mid);
42     if(qr>Mid) query0(ql,qr,rs(p),Mid+1,r);
43 }
44 void query1(int ql,int qr,int p,int l,int r) {
45     if(ql<=l&&r<=qr) {
46         hsh1+=hsh[1][p]*Pow[now];
47         now+=len[p];
48         return ;
49     }
50     int Mid=(l+r)>>1;
51     if(qr>Mid) query1(ql,qr,rs(p),Mid+1,r);
52     if(ql<=Mid) query1(ql,qr,ls(p),l,Mid);
53 }
54 
55 int main() {
56     n=read();
57     Pow[0]=1;
58     for(int i=1;i<=n;i++) Pow[i]=Pow[i-1]*233;
59     build(1,1,n);
60     for(int i=1;i<=n;i++) {
61         int a=read();
62         update(a,1,1,n);
63         int l=min(a-1,n-a);
64         if(l) {
65             hsh0=now=0;
66             query0(a-l,a-1,1,1,n);
67             hsh1=now=0;
68             query1(a+1,a+l,1,1,n);
69             if(hsh0^hsh1) return printf("NO"),0;
70         }
71     }
72     printf("YES");
73 }

 

以上是关于hhh的主要内容,如果未能解决你的问题,请参考以下文章

HHH

hhh

Spring Data 错误:“HHH000389 不成功:如果存在则删除表”

错误:HHH000299:无法完成架构更新 java.lang.NullPointerException

Hibernate - HHH000352: Unable to release batch statement

HHH000431:无法确定 H2 数据库版本,某些功能可能无法使用