1272 最大距离 
题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题

 收藏
 关注

给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标):
(0,0), (0, 2), (1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (3, 3), (3, 4), (4, 4), (5, 5)。其中(1, 4)是距离最大的一对,距离为3。

Input
第1行:1个数N,表示数组的长度(2 <= N <= 50000)。
第2 - N + 1行:每行1个数,对应数组元素Ai(1 <= Ai <= 10^9)。
Output
输出最大距离。
Input示例
6
5
3
6
3
4
2
Output示例
3

遍历每个数ai,求右边比ai大的最远的位置。排序+后缀。先排序,然后第i个后面都是比第i个大的,然后求i-n中下标的最大值行。
 1 #include <bits/stdc++.h>
 2 #define ll long long
 3 using namespace std;
 4 const int N = 5e4+10;
 5 int pre[N], n;
 6 struct Nod{
 7     int num,id;
 8 }nod[N];
 9 bool cmp(Nod &a, Nod &b) {
10     if(a.num != b.num) return a.num < b.num;
11     else return a.id < b.id;
12 }
13 int main() {
14     cin >> n;
15     for(int i = 1; i <= n; i ++) {
16         cin >> nod[i].num;
17         nod[i].id = i;
18     }
19     sort(nod+1,nod+1+n,cmp);
20     pre[n] = nod[n].id;
21     for(int i = n-1; i > 0; i --) {
22         pre[i] = max(pre[i+1],nod[i].id);
23     }
24     int MAX = 0;
25     for(int i = 1; i < n; i ++) {
26         MAX = max(MAX, pre[i+1]-nod[i].id);
27     }
28     cout << MAX << endl;
29     return 0;
30 }

转载于:https://www.cnblogs.com/xingkongyihao/p/8976777.html

51nod 1268最大距离相关推荐

  1. 51nod 1268 和为K的组合 dfs

    题目: 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:& ...

  2. 51nod 1272 最大距离 O(nlog(n)) , 快排 , 最大连续子串

    题目: 解法:排序,把值小的和索引小的放在前面,记录一下之前索引最小的就可以了. 没什么可以讲的,上代码吧: #include <bits\stdc++.h> using namespac ...

  3. 【51Nod - 1268】和为K的组合 (背包 或 dfs)

    题干: 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以,输出:"Yes",否则输出"No". Input 第1行:2个数N, K, ...

  4. 【51Nod - 1416】两点 (dfs 或 并查集+dfs)

    题干: 福克斯在玩一款手机解迷游戏,这个游戏叫做"两点".基础级别的时候是在一个n×m单元上玩的.像这样:     每一个单元有包含一个有色点.我们将用不同的大写字母来表示不同的颜 ...

  5. 51Nod 1102 面积最大的矩形 +1272 最大距离 单调栈

    51Nod 1102 面积最大的矩形 记笔记记笔记:对于区间最值与区间长度/和等的问题,用单调栈来维护区间端点. 这里来补一补单调栈和单调队列的基础知识: 单调栈:                   ...

  6. 【51Nod - 1272 】最大距离 (思维,排序sort的空间优化)

    题干: 给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对.每个元素和自己也可以组成一对.例如:{5, 3, 6, 3, 4, 2},可以组成1 ...

  7. 51Nod:1268 和为K的组合

    1268 和为K的组合  基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K.如果可以 ...

  8. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  9. 微软算法100题11 求二叉树中两节点之间的最大距离

    第11 题 求二叉树中节点的最大距离... 如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的, 我们姑且定义"距离"为两节点之间边的个数. 写一个程序, 求一棵二叉树中相 ...

  10. 51NOD 1773:A国的贸易——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1773 参考1:FWT讲解 https://www.cnblogs.com ...

最新文章

  1. 启明云端分享| 家电应用 串口屏选型推荐
  2. 企业应用程序集成简介
  3. HUT-1694 零用钱 贪心
  4. ta leader是什么岗位_阿里专家:如何成为一名“值得跟”的Leader?
  5. 如何把你的Linux系统变得更加安全
  6. 远程桌面无法启动Matlab的解决方案
  7. 概率语言模型及其变形系列-LDA及Gibbs Sampling
  8. 关于联想安装linux系统后无法扫描出wifi网络问题解决方案
  9. Django的model form组件
  10. 一个完整的物联网项目管理流程
  11. UReport2导出word报错
  12. python_open函数中newline参数详解
  13. 7月18日云栖精选夜读丨蚂蚁金服的“野心”:要做新一代世界级金融科技供应商...
  14. 三角波c语言编程,51单片机简易波形发生器(正弦波 锯齿波 三角波)仿真+源程序+电路原理图...
  15. web之线性渐变,径向渐变,重复渐变
  16. Qt水波进度条Demo
  17. 维度表创建规范_数据仓库维度建模-维度表设计
  18. html鼠标滚轮监听,javascript监听鼠标滚轮事件浅析
  19. 大厂“P8/P9”必读《成为思维高手》pdf 电子书下载
  20. egg-views-ejs

热门文章

  1. python-gui-pyqt5的使用方法-6--lambda传递参数的方法:
  2. 服务器 python cant open file_如何删除分析*。gcda:无法打开python virtualenv builder出错?...
  3. 力扣题目系列:1. 两数之和
  4. Hadoop数据分析实例:P2P借款人信用风险实时监控模型设计
  5. 细说BLUETOOTH 5 【4X 远距离】
  6. ZLYZD团队第四周项目总结
  7. iOS开发-- 使用TestFlight进行Beta测试
  8. exec和source的区别
  9. Iptables基本概念及应用
  10. asp.net Coolite 学习