6个TLE,求救
查看原帖
6个TLE,求救
780847
mo388198楼主2023/10/29 12:02
#include<bits/stdc++.h>
using namespace std;
long long a,f,s[100100],d,lg[100100],dp[100100][20];
int main()
{
	
	scanf("%lld%lld",&a,&f);
	lg[1]=0;
	for(int i=2;i<=a;i++) 
	lg[i]=lg[i>>1]+1;
	for(int i=1;i<=a;i++) 
	scanf("%lld",&dp[i][0]);
	for(int j=1;j<=lg[a];j++)
		for(int i=1;i<=a-(1<<j)+1;i++)
			dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]);
	for(int i=1;i<=f;i++)
	{
		int z,x;
		cin>>z>>x;
		int c=lg[x-z+1];
		printf("%lld\n",max(dp[z][c],dp[x-(1<<c)+1][c]));
	 } 
	return 0;
 } 
2023/10/29 12:02
加载中...