您的位置:首页 > 其它

51nod 1272 最大距离 -暴力

2017-12-19 08:40 232 查看
链接:1272

直接在>=all[i]的全部元素中暴力查找p[i]的对应最大距离,然后再枚举i,这里i<n-ans,否则无法找到比当前更大的ans。中间过程进行适当的优化直接就过了。

代码:

#include<bits/stdc++.h>
using namespace std;

typedef pair<int,int> pii;
int all[50050];
pii p[50050];

int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>all[i];
p[i].first=all[i];
p[i].second=i;
}
sort(p,p+n);
int ans=0;
for(int i=0;i+ans<n;i++){
int j=lower_bound(p+i+1,p+n,pii(all[i],i))-p;
if(j==n)continue;
while(j<n){
if(p[j].second-i>=ans)ans=p[j].second-i;
j++;
}
}
cout<<ans;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: