求助离散化线段树
  • 板块学术版
  • 楼主Herio
  • 当前回复11
  • 已保存回复11
  • 发布时间2021/11/8 20:31
  • 上次更新2023/11/4 01:04:47
查看原帖
求助离散化线段树
257206
Herio楼主2021/11/8 20:31

区间可能很大l,r1018l,r \le 10^{18},区间修改,区间求和。请问离散化的时候怎么加入数组。

我的写法过不了自测数据qwq。

	rep(i,1,Q){
		scanf("%d",&q[i].op);
		if(q[i].op==1){
			scanf("%lld%lld%llu",&q[i].l,&q[i].r,&q[i].v);
		}else {
			scanf("%lld%lld",&q[i].l,&q[i].r);
		}
      //b数组用于离散化
		if(q[i].l-1)b[++cnt]=q[i].l-1;
		b[++cnt]=q[i].l+1;
		if(q[i].r-1)b[++cnt]=q[i].r-1;
		b[++cnt]=q[i].r+1;
		b[++cnt]=q[i].l,b[++cnt]=q[i].r;
	}

感觉离散化的有问题,不知道怎么改。

2021/11/8 20:31
加载中...