萌新刚学OI,求助调试一个树状数组qwq
  • 板块学术版
  • 楼主SIXIANG32
  • 当前回复12
  • 已保存回复12
  • 发布时间2020/9/4 13:27
  • 上次更新2023/11/5 13:45:35
查看原帖
萌新刚学OI,求助调试一个树状数组qwq
298549
SIXIANG32楼主2020/9/4 13:27
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int tra[1000100],trb[1000100],a[1000100],n,m; 
int lowbit(int x)
{
	return x&-x;
}
void addax(int x)
{
	while(x<=n)
	{
		tra[x]=a[x];
		for(int p=1;p<=lowbit(x);p<<=1)
			tra[x]=max(tra[x],tra[x-p]);
		x+=lowbit(x);
	}
}
void addin(int x)
{
	while(x<=n)
	{
		trb[x]=a[x];
		for(int p=1;p<=lowbit(x);p<<=1)
			trb[x]=min(trb[x],trb[x-p]);
		x+=lowbit(x);
	}
}
int qmax(int l,int r)
{
	int maxn=0;
	while(r>=l)
	{
		maxn=max(maxn,a[r]),r--;
		for(;r-lowbit(r)>=l;r-=lowbit(r))
			maxn=max(maxn,tra[r]);
	}
	return maxn;
}
int qmin(int l,int r)
{
	int minn=0x3f3f3f;
	while(r>=l)
	{
		minn=min(minn,a[r]),r--;
		for(;r-lowbit(r)>=l;r-=lowbit(r))
			minn=min(minn,trb[r]);
	}
	return minn;
}

自己拿暴力程序对拍了,错的,可是也布吉岛我哪里出了错,求助/kk

2020/9/4 13:27
加载中...