51nod 1272 最大距离 -暴力

来源:互联网 发布:java手机编译器aide 编辑:程序博客网 时间:2024/05/21 22:35

链接: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;}


原创粉丝点击