1 条题解
-
0
自动搬运
来自洛谷,原作者为

FQR_
不拿金钩不改个签 | CF不上IM不改个签搬运于
2025-08-24 21:36:13,当前版本为作者最后更新于2022-04-24 22:29:41,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
看到题解区的大佬们有用线段树的,有用单调队列的,只会暴力的本蒟蒻大受震撼。
题目简化:
给定长度为 的数组 ,求 和 之间最大的数的位置。
思路:
首先,读入,不必多说。
然后,我们用
maxn表示最大数的值,用ans表示最大数的位置。遍历 和 之间的所有数。如果 比maxn大,就把maxn替换为 ,把ans替换为i。最后,输出
ans,就得到答案了。
AC代码:
#include<bits/stdc++.h> using namespace std; int main() { int n,m,a[100005],x,y; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; cin>>m; while(m--)//循环m次 { cin>>x>>y; int maxn=-1,ans=0;//maxn为最大数的值,ans为最大数的位置 for(int i=x;i<=y;i++)//从x遍历到y { if(a[i]>maxn) { maxn=a[i];ans=i; }//如果a[i]大于当前最大数的值,就把最大值替换为a[i],位置替换成i } cout<<ans<<endl; } return 0; }
- 1
信息
- ID
- 1261
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者