原题目

  根据社会学研究表明,人们都喜欢和自己身高相近的人做朋友。 现在有 N 名身高各不相同的同学依次走进教室。

  调查人员想预测每个人在走入教室的瞬间最想和 已经在教室的哪个人做朋友。当有两名同学和这名同学的身高差一样时,这名同学会更想和高的那个人 做朋友。

  比如一名身高为 180CM 的同学走进教室时,有一名身高为 179CM 的同学和一名身高为 181CM 的 同学在教室里,那么这名身高为 180CM 的同学会更想和身高为 181CM 的同学做朋友。

  对于第 1 个走进教 室的同学我们不做预测。

  第 1 行一个整数 N,表示学生的人数; 第 2 行到第 N+1 行,每行一个整数,第 i+1 行为 Hi,表示第 i 名同学的身高;

  输出共 N-1 行,第 i 行表示第 i+1 名同学最想和已经在教室里面的哪个同学做朋友;

S1:

  Input:


  Output:



  Describe:链表存储。

  code:

#include<bits/stdc++.h>
#define INF 5000005
#define rep(a,b) for(register int i=(a);i<=(b);i++)
#define per(a,b) for(register int i=(a);i>=(b);i--)
using namespace std;
int n,ans[INF],dwn[INF],Jhj[INF],up[INF];
struct fr{
int h,num;
}a[INF];
inline bool cmp(const fr x,const fr y){
return x.h<y.h;
}
inline int read(){
int ret=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}
while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
inline void write(int x){
if(x/10)write(x/10);putchar(x%10+'0');
}
int main(){
n=read();
rep(1,n)a[i].h=read(),Jhj[i]=a[i].h,a[i].num=i;
sort(a+1,a+n+1,cmp);
rep(1,n)dwn[a[i].num]=a[i-1].num,up[a[i].num]=a[i+1].num;
per(n,2){ //逆序!!!
int y=0x7fffffff,x=y;
if(dwn[i])x=Jhj[i]-Jhj[dwn[i]]; //Up[i]表示比第i个人高的第一个人,Dwn[i]表示比第i个人低的第一个人
if(up[i]&&up[i]!=n+1)
y=Jhj[up[i]]-Jhj[i];
if(x<y)ans[i]=dwn[i];
else ans[i]=up[i];
up[dwn[i]]=up[i]; //Del操作
dwn[up[i]]=dwn[i];
}
rep(2,n)write(ans[i]),putchar('\n');
return 0;
}

  

Day5-T2的更多相关文章

  1. NOIP 模拟赛 day5 T2 水 故事题解

    题目描述 有一块矩形土地被划分成 \(\small n×m\) 个正方形小块.这些小块高低不平,每一小块都有自己的高度.水流可以由任意一块地流向周围四个方向的四块地中,但是不能直接流入对角相连的小块中 ...

  2. 正睿七连测 DAY5 T2

    题是水题,也不难想,本来是想打暴力先过个小数据, 本来就想再搞搞优化试试能不能过,毕竟这个题理论上 O( $n^2$ ) 是能过的 题干 主要是觉得这个优化很有可取之处,本来超时,一加这个优化就好很多 ...

  3. 期望dp好题选做

    前言: 最近连考两场期望dp的题目,sir说十分板子的题目我竟然一点也不会,而且讲过以后也觉得很不可改.于是开个坑. 1.晚测10 T2 大佬(kat) 明明有\(O(mlog)\)的写法,但是\(m ...

  4. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  5. Spark菜鸟学习营Day5 分布式程序开发

    Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...

  6. Day5 - Python基础5 常用模块学习

    Python 之路 Day5 - 常用模块学习   本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shel ...

  7. Python学习笔记,day5

    Python学习笔记,day5 一.time & datetime模块 import本质为将要导入的模块,先解释一遍 #_*_coding:utf-8_*_ __author__ = 'Ale ...

  8. Day5 函数递归,匿名、内置行数,模块和包,开发规范

    一.递归与二分法 一.递归 1.递归调用的定义 递归调用:在调用一个函数的过程中,直接或间接地调用了函数本身 2.递归分为两类:直接与间接 #直接 def func(): print('from fu ...

  9. Python学习-day5 常用模块

    day5主要是各种常用模块的学习 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 conf ...

  10. 杭州集训Day5

    下面是Day5的题目!(其实都咕了好几天了 100+70+40=210. T1 皇后 XY 的疑难 (1s 512MB) 1.1 题目描述 有一个n*n的王国城堡地图上,皇后XY喜欢看骑士之间的战斗, ...

随机推荐

  1. 删除Autorun.inf的方法

    你的电脑的每个分区根目录都有一个autorun.inf的文件夹,查看属性是只读+隐藏,且无法删除.无法取得权限!点进去,却显示的是控制面板的内容? 其实这个不是病毒,而是用来防病毒,一些系统封装工具本 ...

  2. MyBatis+Oracle实现主键自增长的几种常用方式

    一.使用selectKey标签 <insert id="addLoginLog" parameterType="map" > <selectK ...

  3. XPath简介

    参考视频:   https://www.bilibili.com/video/av49809274/?p=22 一,什么是XPATH? xpath(xml path language)是一门在xml和 ...

  4. git push的时候报错: Out of memory, malloc failed (tried to allocate 82037333 bytes)

    原因:上传的文件过大,这里我上传的文件有10G+所以报了上面的错误 解决方法:依次运行:git config --global pack.threads 1 git,git config --glob ...

  5. Eclipse上将maven项目部署到tomcat,本地tomcat下,webapps下,web-inf下lib下没有jar包决绝方案

    右键项目选择properties  ,选择Deployment Assembly  , 右边点击Add 然后选择  Java Build Path Entries ,,,next  ,  选择Mave ...

  6. centos6.9下 svn 1.7.10版本 编译安装

    svn安装推荐文章: 1.    http://blog.51cto.com/myhat/786950 2.    https://blog.csdn.net/test1280/article/det ...

  7. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2)E(多重集维护)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long ans[1000007]; ...

  8. vs code 批量替换

    源内容 .icon-user, .icon-people, .icon-user-female, .icon-user-follow, .icon-user-following, .icon-user ...

  9. Java最新面试题

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  10. Input输入框日期控件

    案例 https://pan.baidu.com/s/1i6BNLcT   密码:p77m