当前位置: 首页 > news >正文

3d建模在线制作网站/百度推广员工工资怎么样

3d建模在线制作网站,百度推广员工工资怎么样,自制app网站,郑州网站怎么推广白克喜欢找一个序列中的次大值。对于一个所有数字都不同的序列 x1, x2, ..., xk (k > 1) ,他的次大值是最大的 xj ,并且满足 xj ≠maxki1 xi 对于一个所有数字都不同的序列 x1, x2, ..., xk (k > 1) ,他的幸运数字是最大值和次大值的异或值(Xor)。…

白克喜欢找一个序列中的次大值。对于一个所有数字都不同的序列 x1, x2, ..., xk (k > 1) ,他的次大值是最大的 xj  ,并且满足 xj maxki=1 xi 

对于一个所有数字都不同的序列 x1, x2, ..., xk (k > 1) ,他的幸运数字是最大值和次大值的异或值(Xor)。

现在有一个序列 s1, s2, ..., sn (n > 1) 。 s[l,r] 表示子段  sl, sl+1, ..., sr  。你的任务是找出所有子段的最大幸运数字。

注意,序列s中的所有数字都是不同的。


Input
单组测试数据。
第一行有一个整数n (1 < n ≤ 10^5)。
第二行包含n个不同的整数 s1, s2, ..., sn (1 ≤ si ≤ 10^9)。
Output
输出所有子段的最大幸运值。
Input示例
5
5 2 1 4 3
5
9 8 3 5 7
Output示例
7
15
System Message (题目提供者)
C++的运行时限为:1000 ms ,空间限制为:131072 KB 示例及语言说明请按这里

题解:思路真是巧妙。。

我们维护一个单调递减的栈,然后发现每次一个数进栈的时候,那些弹出栈的数都对应某一个区间的次大值(最大值就是要进栈的数),所以我们每次弹栈的时候更新一下答案就好了。

然后这个只是次大值在最大值之前的情况,之后的情况再把a数组反过来操作一遍就行。


代码:

#include<bits/stdc++.h>
using namespace std;
int n,i,r,ans,a[1000000],b[1000000];
int main(){scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);for(i=1;i<=n;i++){while(r&&b[r]<a[i])ans=max(ans,a[i]^b[r--]);b[++r]=a[i];}memset(b,0,sizeof(b));r=0;for(i=n;i;i--){while(r&&b[r]<a[i])ans=max(ans,a[i]^b[r--]);b[++r]=a[i];}printf("%d",ans);
}

http://www.jmfq.cn/news/4789063.html

相关文章:

  • 做网站编辑器/软文发布软件
  • 党政机关网站建设/一站式网络营销
  • 谁做的四虎网站是多少/适合成人参加的培训班
  • thinkphp网站优化/seo关键词布局
  • wordpress密码忘了/seo教程网站
  • 公司网站公司新闻/google关键词规划师
  • 网站主体备案/18款禁用看奶app入口
  • flash网站引导页面制作/seo优化排名软件
  • 网站制作理念/网站排名查询工具有哪些
  • wordpress做cms网站/seo关键词排名软件
  • thinkphp5网站开发/seo自媒体运营技巧
  • 西安建站/爱站网 关键词挖掘工具站长工具
  • 广告公司网站制作/流量精灵网页版
  • 不用代码做网站/关键词自动优化
  • 我们不仅仅做网站更懂得网络营销/友情链接怎么添加
  • 深圳网站建设 设计首选公司/域名注册哪个平台比较好
  • 个人网站建设设计/百度搜索高级搜索
  • 阿里云win服务器怎么做网站/搜索软件
  • 长春长春网站建设网/国内b2b十大平台排名
  • 专业手机网站设计/百度云资源共享
  • 下载建设银行官方网站下载/百度极速版推广
  • 做网站的相关协议/经典营销案例100例
  • 英文网站建设需求/排名nba
  • 烟台公司网站开发/网站推广业务
  • 做博彩网站犯法吗/湖北百度推广电话
  • 重庆网站建设网页设计/电商网站运营
  • 哪个网站做logo设计/如何在百度免费发布广告
  • 网络设计专业可以学什么/seo怎么推排名
  • 门户网站怎么建设/百度seo咋做
  • 免费一级做网站/绍兴seo推广