51Nod1174 区间中最大的数

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


这道题我真是无语了,本来想用dp写,结果空间超限了!

#include<iostream> 
#include<algorithm>
using namespace std;
int main()
{
int n,a[10001];
cin>>n;
int i,j;
for(i=0;i<n;i++)
cin>>a[i];
int q;
cin>>q;
int k,l;
while(q--)
{
cin>>k>>l;
int max=0;
for(i=k;i<=l;i++)
if(max<a[i])
max=a[i];
cout<<max<<endl;
}
return 0;
}

dp:

#include<iostream> 
#include<algorithm>
using namespace std;
int dp[10001][10001]={0};
int main()
{
int n,a[10001];
cin>>n;
int i,j;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n;i++)
dp[i][i]=a[i];
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
dp[i][j]=max(dp[i][j-1],a[j]);
int q;
cin>>q;
int k,l;
while(q--)
{
cin>>k>>l;
cout<<dp[k][l]<<endl;
}
return 0;
}

 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6