给出n个数字,问最多跑一次谁提出来的有多少不重叠的非空区间,使得每个区间内数字的异或为0

hdu 3911 Black And White 一串0 1的数字 操作将一段区间[ i , j ]的每个数字进行异或操作 问区间最长0|1串
hdu 3911 Black And White 一串0 1的数字 操作将一段区间[ i , j ]的每个数字进行异或操作 问区间最长0|1串
编辑:www.fx114.net
本篇文章主要介绍了"hdu 3911 Black And White 一串0 1的数字 操作将一段区间[ i , j ]的每个数字进行异或操作 问区间最长0|1串",主要涉及到hdu 3911 Black And White 一串0 1的数字 操作将一段区间[ i , j ]的每个数字进行异或操作 问区间最长0|1串方面的内容,对于hdu 3911 Black And White 一串0 1的数字 操作将一段区间[ i , j ]的每个数字进行异或操作 问区间最长0|1串感兴趣的同学可以参考一下。
Problem Description
There are a bunch of Stone color is white or black. Little Sheep has a magic brush, she can change the color of a continuous stone, black to white, white to black. Little Sheep like black very much, so she want
to know the longest period of consecutive black stones in a range [i, j].
&&There are multiple cases, the first line of each case is an integer n(1&= n &= 10^5), followed by n integer 1 or 0(1 indicates black stone and 0 indicates white stone), then is an integer M(1&=M&=10^5) followed by M operations formatted
as x i j(x = 0 or 1) , x=1 means change the color of stones in range[i,j], and x=0 means ask the longest period of consecutive black stones in range[i,j]
When x=0 output a number means the longest length of black stones in range [i,j].
Sample Input
Sample Output
#include&iostream&
#include&cstdio&
#include&cstring&
#include&algorithm&
const int maxn=2000000;
struct Node
&&& int left,//左右区间
&&&//是否需要翻转
&&& int bcval,blval,//black 当前最大区间,左面最大区间,右面最大区间
&&& int wcval,wlval,//white 当前最大区间,左面最大区间,右面最大区间
Node tree[maxn];
int a[maxn];//初始状态 1black& 0white
int getLen(int id)
&&& return tree[id].right-tree[id].left+1;
void update(int id)
&&& tree[id].bcval=max(tree[id&&1].bcval,tree[(id&&1)|1].bcval);
&&& tree[id].bcval=max(tree[id].bcval,tree[id&&1].brval+tree[(id&&1)|1].blval);
&&& tree[id].blval=tree[id&&1].
&&& if(tree[id&&1].blval==getLen(id&&1))
&&&&&&& tree[id].blval=tree[id&&1].blval+tree[(id&&1)|1].
&&& tree[id].brval=tree[(id&&1)|1].
&&& if(tree[(id&&1)|1].brval==getLen((id&&1)|1))
&&&&&&& tree[id].brval=tree[(id&&1)|1].brval+tree[id&&1].
&&& tree[id].wcval=max(tree[id&&1].wcval,tree[(id&&1)|1].wcval);
&&& tree[id].wcval=max(tree[id].wcval,tree[id&&1].wrval+tree[(id&&1)|1].wlval);
&&& tree[id].wlval=tree[id&&1].
&&& if(tree[id&&1].wlval==getLen(id&&1))
&&&&&&& tree[id].wlval=tree[id&&1].wlval+tree[(id&&1)|1].
&&& tree[id].wrval=tree[(id&&1)|1].
&&& if(tree[(id&&1)|1].wrval==getLen((id&&1)|1))
&&&&&&& tree[id].wrval=tree[(id&&1)|1].wrval+tree[id&&1].
void buildtree(int id,int l,int r)
&&& tree[id].left=l,tree[id].right=r;
&&& tree[id].cover=0;
&&& if(l==r)
&&&&&&& if(a[l])
&&&&&&&&&&& tree[id].bcval=tree[id].blval=tree[id].brval=1;
&&&&&&&&&&& tree[id].wcval=tree[id].wlval=tree[id].wrval=0;
&&&&&&& else
&&&&&&&&&&& tree[id].bcval=tree[id].blval=tree[id].brval=0;
&&&&&&&&&&& tree[id].wcval=tree[id].wlval=tree[id].wrval=1;
&&& int mid=(l+r)&&1;
&&& buildtree(id&&1,l,mid);
&&& buildtree((id&&1)|1,mid+1,r);
&&& update(id);
void push(int id)
&&& if(tree[id].cover)
&&&&&&& tree[id].cover=!tree[id].
&&&&&&& tree[id&&1].cover=!tree[id&&1].
&&&&&&& tree[(id&&1)|1].cover=!tree[(id&&1)|1].
&&&&&&& swap(tree[id].bcval,tree[id].wcval);
&&&&&&& swap(tree[id].blval,tree[id].wlval);
&&&&&&& swap(tree[id].brval,tree[id].wrval);
void insert(int id,int l,int r)
&&& if(tree[id].left==l&&tree[id].right==r)
&&&&&&& //important
&&&&&&& tree[id].cover=!tree[id].
&&&&&&& push(id);
&&& push(id);
&&& int mid=(tree[id].left+tree[id].right)&&1;
&&& if(r&=mid) insert(id&&1,l,r);
&&& else if(l&=mid+1) insert((id&&1)|1,l,r);
&&&&&&& insert(id&&1,l,mid);
&&&&&&& insert((id&&1)|1,mid+1,r);
&&& push(id&&1);
&&& push((id&&1)|1);
&&& update(id);
void fresh(Node &cs,Node ls,Node rs)
&&& cs.bcval=max(ls.bcval,rs.bcval);
&&& cs.bcval=max(cs.bcval,ls.brval+rs.blval);
&&& cs.blval=ls.
&&& if(ls.blval==ls.right-ls.left+1)
&&&&&&& cs.blval=ls.blval+rs.
&&& cs.brval=rs.
&&& if(rs.brval==rs.right-rs.left+1)
&&&&&&& cs.brval=rs.brval+ls.
&&& cs.wcval=max(ls.wcval,rs.wcval);
&&& cs.wcval=max(cs.wcval,ls.wrval+rs.wlval);
&&& cs.wlval=ls.
&&& if(ls.wlval==ls.right-ls.left+1)
&&&&&&& cs.wlval=ls.wlval+rs.
&&& cs.wrval=rs.
&&& if(rs.wrval==rs.right-rs.left+1)
&&&&&&& cs.wrval=rs.wrval+ls.
Node query(int id,int l,int r)
&&& if(tree[id].left==l&&tree[id].right==r)
&&&&&&& push(id);
&&&&&&& return tree[id];
&&& push(id);
&&& int mid=(tree[id].left+tree[id].right)&&1;
&&& if(r&=mid) return query(id&&1,l,r);
&&& else if(l&=mid+1) return query((id&&1)|1,l,r);
&&&&&&& Node cs,ls,
&&&&&&& ls=query(id&&1,l,mid);
&&&&&&& rs=query((id&&1)|1,mid+1,r);
&&&&&&& fresh(cs,ls,rs);
int main()
&&& while(scanf(&%d&,&n)==1)
&&&&&&& for(int i=1;i&=n;i++) scanf(&%d&,&a[i]);
&&&&&&& buildtree(1,1,n);
&&&&&&&scanf(&%d&,&ci);
&&&&&&& while(ci--)
&&&&&&&&&&& int order,x,y;scanf(&%d%d%d&,&order,&x,&y);
&&&&&&&&&&& if(order==1)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& insert(1,x,y);
&&&&&&&&&&& }
&&&&&&&&&&& else
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Node cnt=query(1,x,y);
&&&&&&&&&&&&&&& printf(&%d\n&,cnt.bcval);
&&&&&&&&&&& }
&&& return 0;
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:【GDKOI2016Day1T1-魔卡少女】【拆位】线段树维护区间内所有连续子区间的异或和
时间: 22:57:01
&&&& 阅读:106
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&题意:给出N个数,M个操作。操作有修改和询问两种,每次修改将一个数改成另一个数,每次询问一个区间的所有连续子区间的异或和。n,m&=100000,ai&=1000
当年(其实也就是今年)做不出来的题。。D1T1啊。。。
因为ai&=1000,我们可以拆位处理。拆成10个二进制位,每位开1棵线段树。
对于每个节点,维护:
d:这段区间的异或和
L[0],L[1]:子区间一定从左端点开始,异或和为0,1的子区间分别有多少个
R[0],R[1]:子区间一定从右端点开始,异或和为0,1的子区间分别有多少个
s[0],s[1]:异或和为0,1的子区间分别有多少个
然后重点就是合并啦。
1 node upd(int ind,int tmp,node lc,node rc)
int dl=lc.d,dr=rc.d;
if(tmp!=<span style="color: #) x=t[ind][tmp];
x.d=lc.d^rc.d;
x.L[<span style="color: #]=(lc.L[<span style="color: #]+rc.L[(dl==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.L[<span style="color: #]=(lc.L[<span style="color: #]+rc.L[(dl==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.R[<span style="color: #]=(rc.R[<span style="color: #]+lc.R[(dr==<span style="color: #) ? <span style="color: #:<span style="color: #])%
<span style="color: #
x.R[<span style="color: #]=(rc.R[<span style="color: #]+lc.R[(dr==<span style="color: #) ? <span style="color: #:<span style="color: #])%
<span style="color: #
x.s[<span style="color: #]=(lc.s[<span style="color: #]+rc.s[<span style="color: #]+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod)%
<span style="color: #
x.s[<span style="color: #]=(lc.s[<span style="color: #]+rc.s[<span style="color: #]+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod)%
<span style="color: #
<span style="color: # }
我打成node形式。。因为最后查询的时候有多个区间也要合并。。
1 #include&cstdio&
2 #include&cstdlib&
3 #include&cstring&
4 #include&cmath&
5 #include&iostream&
6 #include&algorithm&
7 using namespace
9 typedef long long LL;
10 const int N=<span style="color: #0010;
11 const LL mod=<span style="color: #0000007;
12 struct node{
int l,r,lc,rc,d;
LL L[<span style="color: #],R[<span style="color: #],s[<span style="color: #];
//L:从左开始
//R:从右开始
//s:总答案
18 }t[<span style="color: #][<span style="color: #*N];
19 char c[<span style="color: #];
20 int n,m,tl,a[N][<span style="color: #];
21 LL bit[<span style="color: #];
23 node upd(int ind,int tmp,node lc,node rc)
int dl=lc.d,dr=rc.d;
if(tmp!=<span style="color: #) x=t[ind][tmp];
x.d=lc.d^rc.d;
x.L[<span style="color: #]=(lc.L[<span style="color: #]+rc.L[(dl==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.L[<span style="color: #]=(lc.L[<span style="color: #]+rc.L[(dl==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.R[<span style="color: #]=(rc.R[<span style="color: #]+lc.R[(dr==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.R[<span style="color: #]=(rc.R[<span style="color: #]+lc.R[(dr==<span style="color: #) ? <span style="color: #:<span style="color: #])%
x.s[<span style="color: #]=(lc.s[<span style="color: #]+rc.s[<span style="color: #]+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod)%
x.s[<span style="color: #]=(lc.s[<span style="color: #]+rc.s[<span style="color: #]+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod+(lc.R[<span style="color: #]*rc.L[<span style="color: #])%mod)%
38 int bt(int ind,int l,int r)
t[ind][x].l=l;t[ind][x].r=r;
t[ind][x].lc=t[ind][x].rc=<span style="color: #;
t[ind][x].d=<span style="color: #;
memset(t[ind][x].L,<span style="color: #,sizeof(t[ind][x].L));
memset(t[ind][x].R,<span style="color: #,sizeof(t[ind][x].R));
memset(t[ind][x].s,<span style="color: #,sizeof(t[ind][x].s));
int mid=(l+r)/<span style="color: #;
t[ind][x].lc=bt(ind,l,mid);
t[ind][x].rc=bt(ind,mid+<span style="color: #,r);
int lc=t[ind][x].lc,rc=t[ind][x].
t[ind][x]=upd(ind,x,t[ind][lc],t[ind][rc]);
int d=a[l][ind];
t[ind][x].d=d;
t[ind][x].L[d]=t[ind][x].R[d]=t[ind][x].s[d]=<span style="color: #;
64 void change(int ind,int x,int p,int d)
if(t[ind][x].l==t[ind][x].r)
t[ind][x].d=d;
t[ind][x].L[d]=t[ind][x].R[d]=t[ind][x].s[d]=<span style="color: #;
t[ind][x].L[d^<span style="color: #]=t[ind][x].R[d^<span style="color: #]=t[ind][x].s[d^<span style="color: #]=<span style="color: #;
int lc=t[ind][x].lc,rc=t[ind][x].rc,mid=(t[ind][x].l+t[ind][x].r)/<span style="color: #;
if(p&=mid) change(ind,lc,p,d);
else change(ind,rc,p,d);
t[ind][x]=upd(ind,x,t[ind][lc],t[ind][rc]);
79 node query(int ind,int x,int l,int r)
if(t[ind][x].l==l && t[ind][x].r==r) return t[ind][x];
int lc=t[ind][x].lc,rc=t[ind][x].rc,mid=(t[ind][x].l+t[ind][x].r)/<span style="color: #;
if(r&=mid) return query(ind,lc,l,r);
else if(l&mid) return query(ind,rc,l,r);
node a0=query(ind,lc,l,mid);
node a1=query(ind,rc,mid+<span style="color: #,r);
return upd(<span style="color: #,<span style="color: #,a0,a1);
93 void output(int ind,int x)
int lc=t[ind][x].lc,rc=t[ind][x].
printf("l=%d r=%d d=%d l0=%lld l1=%lld r0=%lld r1=%lld s0=%lld s1=%lld\n",t[ind][x].l,t[ind][x].r,t[ind][x].d,t[ind][x].L[<span style="color: #],t[ind][x].L[<span style="color: #],t[ind][x].R[<span style="color: #],t[ind][x].R[<span style="color: #],t[ind][x].s[<span style="color: #],t[ind][x].s[<span style="color: #]);
if(lc) output(ind,lc);
if(rc) output(ind,rc);
<span style="color: #0
<span style="color: #1 int main()
<span style="color: #2 {
<span style="color: #3
freopen("a.in","r",stdin);
<span style="color: #4
freopen("me.out","w",stdout);
<span style="color: #5
// freopen("cardcaptor.in","r",stdin);
<span style="color: #6
// freopen("cardcaptor.out","w",stdout);
<span style="color: #7
scanf("%d",&n);
<span style="color: #8
<span style="color: #9
bit[<span style="color: #]=<span style="color: #;
<span style="color: #0
for(int i=<span style="color: #;i&=<span style="color: #;i++) bit[i]=bit[i-<span style="color: #]*<span style="color: #;
<span style="color: #1
memset(a,<span style="color: #,sizeof(a));
<span style="color: #2
for(int i=<span style="color: #;i&=n;i++)
<span style="color: #3
<span style="color: #4
scanf("%d",&x);
<span style="color: #5
ind=<span style="color: #;
<span style="color: #6
<span style="color: #7
<span style="color: #8
a[i][ind]=x%<span style="color: #;
<span style="color: #9
x/=<span style="color: #;
<span style="color: #0
<span style="color: #1
<span style="color: #2
<span style="color: #3
scanf("%d",&m);
<span style="color: #4
for(int i=<span style="color: #;i&<span style="color: #;i++) {tl=<span style="color: #;bt(i,<span style="color: #,n);}
<span style="color: #5
for(int i=<span style="color: #;i&=m;i++)
<span style="color: #6
<span style="color: #7
scanf("%s",c);
<span style="color: #8
if(c[<span style="color: #]==‘Q‘)
<span style="color: #9
<span style="color: #0
int l,r;LL ans=<span style="color: #;
<span style="color: #1
scanf("%d%d",&l,&r);
<span style="color: #2
for(int j=<span style="color: #;j&<span style="color: #;j++)
<span style="color: #3
<span style="color: #4
now=query(j,<span style="color: #,l,r);
<span style="color: #5
ans=(ans+(bit[j]*now.s[<span style="color: #])%mod)%
<span style="color: #6
<span style="color: #7
printf("%lld\n",ans);
<span style="color: #8
<span style="color: #9
<span style="color: #0
<span style="color: #1
int ind=<span style="color: #,p,d;
<span style="color: #2
scanf("%d%d",&p,&d);
<span style="color: #3
<span style="color: #4
<span style="color: #5
change(ind,<span style="color: #,p,d%<span style="color: #);
<span style="color: #6
d/=<span style="color: #;
<span style="color: #7
<span style="color: #8
<span style="color: #9
for(int j=j&<span style="color: #;j++) change(j,<span style="color: #,p,<span style="color: #);
<span style="color: #0
<span style="color: #1
<span style="color: #2
return <span style="color: #;
<span style="color: #3 }
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!acm_数据结构(111)
Problem Description
There are a bunch of Stone color is white or black. Little Sheep has a magic brush, she can change the color of a continuous stone, black to white, white to black. Little Sheep like black very much, so she want
to know the longest period of consecutive black stones in a range [i, j].
&&There are multiple cases, the first line of each case is an integer n(1&= n &= 10^5), followed by n integer 1 or 0(1 indicates black stone and 0 indicates white stone), then is an integer M(1&=M&=10^5) followed by M operations formatted
as x i j(x = 0 or 1) , x=1 means change the color of stones in range[i,j], and x=0 means ask the longest period of consecutive black stones in range[i,j]
When x=0 output a number means the longest length of black stones in range [i,j].
Sample Input
Sample Output
#include&iostream&
#include&cstdio&
#include&cstring&
#include&algorithm&
const int maxn=2000000;
struct Node
&&& int left,//左右区间
&&&//是否需要翻转
&&& int bcval,blval,//black 当前最大区间,左面最大区间,右面最大区间
&&& int wcval,wlval,//white 当前最大区间,左面最大区间,右面最大区间
Node tree[maxn];
int a[maxn];//初始状态 1black& 0white
int getLen(int id)
&&& return tree[id].right-tree[id].left&#43;1;
void update(int id)
&&& tree[id].bcval=max(tree[id&&1].bcval,tree[(id&&1)|1].bcval);
&&& tree[id].bcval=max(tree[id].bcval,tree[id&&1].brval&#43;tree[(id&&1)|1].blval);
&&& tree[id].blval=tree[id&&1].
&&& if(tree[id&&1].blval==getLen(id&&1))
&&&&&&& tree[id].blval=tree[id&&1].blval&#43;tree[(id&&1)|1].
&&& tree[id].brval=tree[(id&&1)|1].
&&& if(tree[(id&&1)|1].brval==getLen((id&&1)|1))
&&&&&&& tree[id].brval=tree[(id&&1)|1].brval&#43;tree[id&&1].
&&& tree[id].wcval=max(tree[id&&1].wcval,tree[(id&&1)|1].wcval);
&&& tree[id].wcval=max(tree[id].wcval,tree[id&&1].wrval&#43;tree[(id&&1)|1].wlval);
&&& tree[id].wlval=tree[id&&1].
&&& if(tree[id&&1].wlval==getLen(id&&1))
&&&&&&& tree[id].wlval=tree[id&&1].wlval&#43;tree[(id&&1)|1].
&&& tree[id].wrval=tree[(id&&1)|1].
&&& if(tree[(id&&1)|1].wrval==getLen((id&&1)|1))
&&&&&&& tree[id].wrval=tree[(id&&1)|1].wrval&#43;tree[id&&1].
void buildtree(int id,int l,int r)
&&& tree[id].left=l,tree[id].right=r;
&&& tree[id].cover=0;
&&& if(l==r)
&&&&&&& if(a[l])
&&&&&&&&&&& tree[id].bcval=tree[id].blval=tree[id].brval=1;
&&&&&&&&&&& tree[id].wcval=tree[id].wlval=tree[id].wrval=0;
&&&&&&& else
&&&&&&&&&&& tree[id].bcval=tree[id].blval=tree[id].brval=0;
&&&&&&&&&&& tree[id].wcval=tree[id].wlval=tree[id].wrval=1;
&&& int mid=(l&#43;r)&&1;
&&& buildtree(id&&1,l,mid);
&&& buildtree((id&&1)|1,mid&#43;1,r);
&&& update(id);
void push(int id)
&&& if(tree[id].cover)
&&&&&&& tree[id].cover=!tree[id].
&&&&&&& tree[id&&1].cover=!tree[id&&1].
&&&&&&& tree[(id&&1)|1].cover=!tree[(id&&1)|1].
&&&&&&& swap(tree[id].bcval,tree[id].wcval);
&&&&&&& swap(tree[id].blval,tree[id].wlval);
&&&&&&& swap(tree[id].brval,tree[id].wrval);
void insert(int id,int l,int r)
&&& if(tree[id].left==l&&tree[id].right==r)
&&&&&&& //important
&&&&&&& tree[id].cover=!tree[id].
&&&&&&& push(id);
&&& push(id);
&&& int mid=(tree[id].left&#43;tree[id].right)&&1;
&&& if(r&=mid) insert(id&&1,l,r);
&&& else if(l&=mid&#43;1) insert((id&&1)|1,l,r);
&&&&&&& insert(id&&1,l,mid);
&&&&&&& insert((id&&1)|1,mid&#43;1,r);
&&& push(id&&1);
&&& push((id&&1)|1);
&&& update(id);
void fresh(Node &cs,Node ls,Node rs)
&&& cs.bcval=max(ls.bcval,rs.bcval);
&&& cs.bcval=max(cs.bcval,ls.brval&#43;rs.blval);
&&& cs.blval=ls.
&&& if(ls.blval==ls.right-ls.left&#43;1)
&&&&&&& cs.blval=ls.blval&#43;rs.
&&& cs.brval=rs.
&&& if(rs.brval==rs.right-rs.left&#43;1)
&&&&&&& cs.brval=rs.brval&#43;ls.
&&& cs.wcval=max(ls.wcval,rs.wcval);
&&& cs.wcval=max(cs.wcval,ls.wrval&#43;rs.wlval);
&&& cs.wlval=ls.
&&& if(ls.wlval==ls.right-ls.left&#43;1)
&&&&&&& cs.wlval=ls.wlval&#43;rs.
&&& cs.wrval=rs.
&&& if(rs.wrval==rs.right-rs.left&#43;1)
&&&&&&& cs.wrval=rs.wrval&#43;ls.
Node query(int id,int l,int r)
&&& if(tree[id].left==l&&tree[id].right==r)
&&&&&&& push(id);
&&&&&&& return tree[id];
&&& push(id);
&&& int mid=(tree[id].left&#43;tree[id].right)&&1;
&&& if(r&=mid) return query(id&&1,l,r);
&&& else if(l&=mid&#43;1) return query((id&&1)|1,l,r);
&&&&&&& Node cs,ls,
&&&&&&& ls=query(id&&1,l,mid);
&&&&&&& rs=query((id&&1)|1,mid&#43;1,r);
&&&&&&& fresh(cs,ls,rs);
int main()
&&& while(scanf(&%d&,&n)==1)
&&&&&&& for(int i=1;i&=n;i&#43;&#43;) scanf(&%d&,&a[i]);
&&&&&&& buildtree(1,1,n);
&&&&&&&scanf(&%d&,&ci);
&&&&&&& while(ci--)
&&&&&&&&&&& int order,x,y;scanf(&%d%d%d&,&order,&x,&y);
&&&&&&&&&&& if(order==1)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& insert(1,x,y);
&&&&&&&&&&& }
&&&&&&&&&&& else
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Node cnt=query(1,x,y);
&&&&&&&&&&&&&&& printf(&%d\n&,cnt.bcval);
&&&&&&&&&&& }
&&& return 0;
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:588584次
积分:13031
积分:13031
排名:第1049名
原创:749篇
评论:52条
(1)(1)(1)(1)(54)(91)(48)(30)(3)(28)(28)(24)(2)(16)(57)(68)(66)(209)(25)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 出现次数最多的数字 的文章

 

随机推荐