大佬救救90分的孩子吧!!!
  • 板块P1816 忠诚
  • 楼主GUN_
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/7/17 21:01
  • 上次更新2023/11/4 14:21:39
查看原帖
大佬救救90分的孩子吧!!!
236299
GUN_楼主2021/7/17 21:01

第九个点WA了

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100002];
long long ff[100002][31],logn[2000001];
inline int read()
{
	int x=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
void pre(int m)
{
	logn[1]=0;
	logn[2]=1;
	for(int i=3;i<=m;i++)
	     logn[i]=logn[i/2]+1;
}
int main()
{
	n=read();
	m=read();
	for(int i=1;i<=n;i++)
	     cin>>ff[i][0];
	pre(m);
	for(int j=1;j<=21;j++)
	     for(int i=1;i+(1<<j)-1<=n;i++)
		      ff[i][j]=min(ff[i][j-1],ff[i+(1<<(j-1))][j-1]);
	for(int i=1;i<=m;i++)
	     {
	     	  int r=read();
	     	  int l=read();
	     	  int s=logn[l-r+1];
	     	  a[i]=min(ff[r][s],ff[l-(1<<s)+1][s]);
		 }
	for(int i=1;i<=m;i++)
	     cout<<a[i]<<" ";
	return 0;
} 
2021/7/17 21:01
加载中...