明天好像要考链表今晚笔者来了解下。

题目链接

解:

对于这道题,由于前面要与后面重新连起来,于是我们考虑链表。

我们先正常用链表维护关系。然后,我们从大到小枚举。

对于这个数,如果它后面有数(因为是一对一起进入),就把它们压入队列(输出即可)

这样就利用链表完成了一个贪心的过程。

Code:

#include<list>
#include<iostream>
#include<cstdio>
using namespace std;
int head[500000],Next[500000];
int n,a[500000];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
head[a[i]]=a[i-1];
Next[a[i-1]]=a[i];
}
for(int i=n;i>=1;--i){
if(Next[i]){//这里是i,故从小到大。
printf("%d %d ",i,Next[i]);
Next[head[i]]=Next[Next[i]];
head[Next[Next[i]]]=head[i];//i Next[Next[i]].head=head[i].
Next[Next[i]]=0;//即 head[Next[Next[i]]]=head[i].
}
}
return 0;
}

最新文章

  1. JS魔法堂:不完全国际化&amp;本地化手册 之 理論篇
  2. js parsefloat
  3. addEventListener 的另类写法
  4. iOS使用Core Graphics和UIBezierPath绘画
  5. java\c程序的内存分配
  6. C++中关于new及内存地址的思考
  7. Less tips:声明变量之前可以引用变量!
  8. libcurl
  9. bzoj1030
  10. 前端面试题整理(js)
  11. OC语言(三)
  12. spring-boot的spring-cache中的扩展redis缓存的ttl和key名
  13. 跨域获取后台日期-ASP
  14. C语言入门(1)
  15. .Net Self Hosting 的几种方式
  16. 【转】Java学习---Java核心数据结构(List,Map,Set)使用技巧与优化
  17. VS2013支持多字节的方法
  18. 网页3D效果库Three.js学习[二]-了解照相机
  19. Siki_Unity_7-4_高自由度沙盘游戏地图生成_MineCraft_Uniblocks插件(可拓展)
  20. C11多线程

热门文章

  1. Labview学习之路(三)前面板数值控件
  2. 【Android】时间选择器,选择日期DatePicker 简单详解demo及教程
  3. 期望概率DP
  4. 单元测试框架 python
  5. Arbitrary-Oriented Object Detection with Circular Smooth Label(ECCV2020,旋转目标检测)
  6. three.js尝试(一)模拟演唱会效果
  7. Mysql优化概述及其压力测试工具
  8. TonWeb6.1Linux安装文档
  9. jenkins通过API触发构建任务
  10. 本机ping不通虚拟机,但虚拟机可以ping通本机时怎么解决