51nod 1423 最大二“货”

来源:互联网 发布:支撑阻力 知乎 编辑:程序博客网 时间:2024/05/16 04:36

用单调栈维护区间最大值。

#include<bits/stdc++.h>using namespace std;const int MAXN=100100;int stk[MAXN],a[MAXN];int main(){int n,ans,cnt,i;while(~scanf("%d",&n)){for(i=1;i<=n;i++)scanf("%d",&a[i]);ans=0;cnt=0;for(i=1;i<=n;i++){while(cnt>=1&&a[i]>a[stk[cnt]])cnt--;if(cnt)ans=max(ans,a[i]^a[stk[cnt]]);stk[++cnt]=i;}cnt=0;for(i=n;i>=1;i--){while(cnt>=1&&a[i]>a[stk[cnt]])cnt--;if(cnt)ans=max(ans,a[i]^a[stk[cnt]]);stk[++cnt]=i;}printf("%d\n",ans);}}


0 0
原创粉丝点击