vector的奇怪疑问求助
查看原帖
vector的奇怪疑问求助
819004
lostinue楼主2024/8/22 20:28

tag1处,直接输出insert()有值,但赋值给ls后再输出是0.

查了好久,想不明白,崩溃ing

#define mid ((l+r)>>1)

struct Segmenty{
	#define lson ls[x],l,mid
	#define rson rs[x],mid+1,r
	vector<int> a=vector<int>(2),ls=vector<int>(2),rs=vector<int>(2);
	void update(int x){
		a[x]=a[ls[x]]+a[rs[x]];
	}
	int insert(int x,int l,int r,int q){
		if(!x)x=a.size(),a.pb(0),ls.pb(0),rs.pb(0);
		ptln(q,":",l,r,x,a[x]);
		if(l==r&&r==q){a[x]++;return x;}
		if(q<=mid)ls[x]=insert(lson,q);//tag1
		if(q>mid)rs[x]=insert(rson,q);
		update(x);
		ptln(q,"&",x,ls[x],rs[x]);
		return x;
	}
2024/8/22 20:28
加载中...