【模板】ST表 求调

谁能告诉我慢在哪了呢?

#include <bits/stdc++.h>
using namespace std;
int n,m,x,y;
int a[100010],st[100010],f[100010][20];
int main()
{
	cin>>n>>m;
	st[1]=0;
	for(int i=2;i<=n;i++){
		st[i]=st[i>>1]+1;
	}
	for(int i=1;i<=n;i++){
		cin>>f[i][0];
	}
	for(int j=1;j<=st[n];j++){
		for(int i=1;i<=n-(1<<j)+1;i++){
			f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]);
		}
	}	
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		int l=st[y-x+1];
		cout<<max(f[x][l],f[y-(1<<l)+1][l])<<"\n";
	}
}

TLE40分

别告诉我用快速输入

用快读和scanf(应该是)

这题要用scanf啊
我没用的时候TLE30pts
用了直接AC

我用快读AC了(给解决方案)

快读50分

喵?
image

你看看是不是原来的代码,要是是的话把这两行加上就能AC

666我以为是偷来的函数快读

给啦

不是,是scanf

(孑孓方案)

bushi,为啥不给我?
我也有一半吧

怎么给俩

好的,@杨思越 这题把两个的任意一个加上都能AC,且 @论坛学生管理委员会 关帖

不用,跟老师说就行了

按照规则,先回答的就给且这题很简单

一人一半可以

解决方案给你,但是分数分我一半

2 个赞