为什么样例全是0啊
查看原帖
为什么样例全是0啊
157598
Magallan_forever楼主2020/7/22 15:51

不知道这破代码有多少问题

#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[100001],f[100001][20],log_num[100001]={0,0,1};
void init_st(){
	for(int i=1;i<=n;++i) log_num[i]=log_num[i>>1]+1,f[i][0]=a[i];
	for(int j=1;j<=20;++j) for(int i=1;i+(1<<j)-1<=n;++i) f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
}
int get_ans(int x,int y){
	return max(f[x][log_num[y-x+1]],f[y-(1<<log_num[y-x+1])+1][log_num[y-x+1]]);
}
int main(){
	int m,x,y;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i) scanf("%d",a+i);
	while(m--) scanf("%d%d",&x,&y),printf("%d\n",get_ans(x,y));
	return 0;
}
2020/7/22 15:51
加载中...