- 「一本通 4.2 例 1」数列区间最大值
蒟蒻的第一个题解
- 2025-3-23 9:45:25 @
不说了,直接上代码 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m,x,y,a[N],dp[N][30]; int main(){ scanf("%d %d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ dp[i][0]=a[i]; } for(int i=1;i<=30;i++){ for(int j=1;j+(1<<i)-1<=n;j++){ dp[j][i]=max(dp[j][i-1],dp[j+(1<<(i-1))][i-1]); } } for(int i=1;i<=m;i++){ scanf("%d%d",&x,&y); int t=log2(y-x+1); printf("%d\n",max(dp[x][t],dp[y-(1<<t)+1][t])); } return 0; }
0 条评论
目前还没有评论...
信息
- ID
- 1363
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 108
- 已通过
- 31
- 上传者