51nod1423 最大二“货”问题
白克喜欢找一个序列中的次大值。对于一个所有数字都不同的序列 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中的所有数字都是不同的。
单组测试数据。 第一行有一个整数n (1 < n ≤ 10^5)。 第二行包含n个不同的整数 s1, s2, ..., sn (1 ≤ si ≤ 10^9)。
输出所有子段的最大幸运值。
5 5 2 1 4 3 5 9 8 3 5 7
7 15
题解:思路真是巧妙。。
我们维护一个单调递减的栈,然后发现每次一个数进栈的时候,那些弹出栈的数都对应某一个区间的次大值(最大值就是要进栈的数),所以我们每次弹栈的时候更新一下答案就好了。
然后这个只是次大值在最大值之前的情况,之后的情况再把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);
}
51nod1423 最大二“货”问题相关推荐
- 51nod1423 最大二“货”
题面在这里 我们维护一个单调递减的栈,然后发现每次一个数进栈的时候,那些弹出栈的数都对应某一个区间的次大值(最大值就是要进栈的数),所以我们每次弹栈的时候更新一下答案就好了. 然后这个只是次大值在最大 ...
- 51nod-1423 最大二“货”(单调栈)
原题链接 1423 最大二"货" 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 白克喜欢找一 ...
- 51nod 1423:最大二“货”
1423 最大二"货" 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 取消关注 白克喜欢找一个序列 ...
- 幽默故事:1、背对猜字;2、二货老婆与狗(木子家原创)
1.去年公司联欢会上,有一个节目是,一个女同事按照主持人题板上写的字,进行比划,给背对着主持人的那个二货男同事猜,主持人在题板上写了一个"脸"字,那个女同事对着那个二货男同事指着自 ...
- 51nod 1423 最大二“货” 单调栈
利用单调栈,高效求出每个区间内的最大值和次大值的亦或值. 先正向扫描,利用单调递减栈,若当前栈为空栈,则直接压入栈中,若为非空栈,弹出栈顶元素,每弹出一个元素,则求一次亦或值,保留最大值 接着进行反向 ...
- 51nod 1423 最大“二货”【单调栈】
Description 白克喜欢找一个序列中的次大值.对于一个所有数字都不同的序列 x1, x2, -, xk (k > 1) ,他的次大值是最大的 xj ,并且满足 xj ≠maxki=1 x ...
- 微信扫码支付的时候报system error 错误,只能说微信是个二货
某次做微信扫码支付开发的时候一直程序一直报system error这个错误,经过小M的仔细筛查,发现错误在WxPay.Api.php这个文件中的postXmlCurl这个提交方法中..,微信你想干什么 ...
- 跳出数据计算拯救人工智能之打败机器学习方法详解二
上回分析的够透彻了吧 计算方面就使用填字数据结构计算 存储方面使用数据库表的方式存储 为了方便就都使用 填字的方式进行试验 首先要知道采取上回说到的65535个二进制位进行代表人类的文字信息的话 那么 ...
- python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性)
python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性) 昨日内容回顾 1.app播放音乐plus.audio.createPlayer(文件路径/URL)player.play( ...
最新文章
- Linux下编译安装Apache、php和svn
- 如何安装Pycharm官方统计代码行插件
- C++基本操作符重载
- 原型设计20条军规(转)
- c调用按钮点击事件_Unity3d---对UI事件接口的一些测试和机制(坑)的总结
- 算法(第4版)Robert Sedgewick 刷题 第一章(1)
- Azure 上的网站如何识别不同国家和地区的用户
- Java限流之 —— Sentinel初识
- Drools环境搭建
- 接口测试 python+PyCharm 环境搭建
- 如何让循环里面语句执行完之后再去循环第二次_Go循环语句的使用
- ffmpeg教程 如何输出任务日志?用于进度条显示
- ioc performanceTest
- 2021-04-09
- MVC、MVP与MVT
- 怎样让小孩变成机灵顾客
- Linux环境准备五---VMWare打开CentOS虚拟机报错VT(长模式不兼容)等错误的解决方案
- Latex单行/多行公式居中/左对齐
- 公共经济学(开卷)期末复习题
- 移动照片社交应用成美网络新宠
热门文章
- 程序员合同日期不到想辞职_在职场,辞职有时是难免的,要怎样写辞职信才好呢...
- 漫画:如何分别使用8种编程语言拯救公主
- 数字人民币在上海试点,首次实现脱离手机的硬钱包支付模式!
- 计算机信息学院运动会入场式,厦门大学信息学院第一届新生运动会成功举办
- Android中高级面试必知必会,绝对干货
- python里面的pip是什么意思_“pip install”和“python -m pip install”有什么区别?
- 2013 NMPD展示预览,第1部分
- 转载:联想小新进入BIOS方法
- PCM开发板模块实验指导--SPI读写PSRAM64实验
- 关于全球时间的一点理解