1431 快乐排队 
题目来源: CodeForces
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题

 收藏
 关注

有一群人在排队,如果某个人想排到前面去,可以花一元钱给直接站在他前面的人,然后和这个人交换位置。如果自己没有钱了,就不能和前面的人交换。

但是呢,队列里面的人觉得排他前面的所有人一定要比较有钱的,至少不能比他自己拿的少。否则里面就会有人生气。站在队头的人一定是高兴的。

现在给出一个队列的初始状态,问能不能调整队列,使得里面的人都高兴。

样例解释:样例1中,队尾的人可以和前面的人交换,变成9 10。

Input
单组测试数据。
第一行包含一个整数n (1 ≤ n ≤ 200,000),表示队列中的人数。
第二行包含n个空格分开的整数 ai (0 ≤ ai ≤ 10^9),ai表示队列中第i个人手上拿的钱。编号从队尾开始。
Output
对于每一组数据如果能够使得所有人高兴输出Happy,否则输出Sad。
Input示例
2
11 8
2
9 8
Output示例
Happy
Sad

题解:orz讨论区dalao。

对读入的所有数字加上其到队头的距离后的结果判重即可。

但是,为什么这样做是对的?考虑有可能造成序列不合法的数字对,必定是初始位置在前面的数值比后面的小。但是,要将这两个数移到一起,发现前者比后者小一,才能直接判断不合法。于是,需要把中间的数移开。假设中间的数字已经形成了合法的序列(如果不合法必定可以用同样的方法在中间的某个位置判断出来),如果中间的某个数字大于等于较大数,这个数字必定大于较小数,移走这个数字会给较小数加上一;如果中间的某个数字小于较大数,移走这个数字会给较大数减去一。由于中间的数字已经形成了合法的序列,满足单调不上升,因此大于等于较大数的数字都排在前面,必定可以从大到小依次通过较小数;对于较大数同理。不断地移走中间数的过程中,对于前后两者之差,任意一个中间数的影响恒为减一;因为要求两数并拢,所有中间数对两者差的综合影响恒为减去中间数的个数。于是就得到不合法状态的判断式子:存在i,j(i>j),满足a[i]-a[j]=i-j,其中a[k]表示队头起第k个数。将等式变换一下,即得:a[i]-i=a[j]-j。

注意本题中的读入是从队尾到队头的。

代码:

#include<bits/stdc++.h>
using namespace std;
int n,i,a[1000000];
int main(){scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]),a[i]+=i;sort(a+1,a+n+1);for(i=1;i<=n;i++)if(a[i]==a[i-1]){printf("Sad");return 0;}printf("Happy");
}

51nod1431 快乐排队相关推荐

  1. 51nod快乐排队 1431

    题意: 1431 快乐排队 1.0 秒 131,072.0 KB 80 分 5级题 有一群人在排队,如果某个人想排到前面去,可以花一元钱给直接站在他前面的人,然后和这个人交换位置.如果自己没有钱了,就 ...

  2. 51 nod 1431 快乐排队

    1431 快乐排队 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 有一群人在排队,如果某个人想排到前面去,可以花 ...

  3. 51nod 1431 快乐排队

    题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 有一群人在排队,如果某个人想排到前面去,可以花一元钱给直接站在他前 ...

  4. 51单片机可以晚电子游戏吗_电子游戏是在浪费时间吗

    51单片机可以晚电子游戏吗 Late in July, Joe Rogan made a comment on video games in episode #1514 of his prolific ...

  5. 深圳“拍了拍”长沙:美食巨头文和友、茶颜、徐记海鲜正在“排队”签收

    来源:螳螂财经 作者:易不二 5万人排队,文和友+茶颜悦色的超级IP叠加成了热搜:霸榜美食TOP 1,徐记海鲜成为新晋人气王......作为长沙美食的三张名片,文和友.茶颜悦色.徐记海鲜,一起在这个春 ...

  6. 虽然苏伊士运河大堵塞了,但是全球“玩家”收获了真实的快乐

    来源|蚕豆网 ID|candouwang 作者|蚕豆君 终于恢复了! 在苏伊士运河上"横"了六天的巨型货轮"长赐"号周一终于脱浅并恢复到了正常航道. 苏伊士运河 ...

  7. 考研到底有多累?有人心累,有人很快乐

    转载于 博雅数据库 不是每天起早贪黑披星戴月有多累,也不是刷了多少题背了多少书有多累,而是心累,差点坚持不下去. 考研前心态一天比一天差,复习效率直线下降,最惨的时候给我妈打电话说考不上了. 身为一个 ...

  8. 深入浅出CChart 每日一课——快乐高四第五十六课 絮絮叨叨,岁月杀猪刀之FAQ

    CChart发布已有多年,QQ交流群也成立了很久.在和网友的交流中,发行了CChart的很多问题,也进行了很多改进和完善. 网友们接触CChart的时间有早有晚,不同的网友经常在群里或私聊的时候提出的 ...

  9. 向美国人学习“如何快乐”

    快乐是一个神奇的东西,如果你愿意分享,那么,一个快乐会变成N个快乐.本文提及许多关于美国人快乐和中国人不快乐的原因,绝非崇洋媚外,而是希望我们从中有所借鉴和启示,让自己越来越快乐. 美国一家调查机构在 ...

最新文章

  1. MapReduce 中 UDF、UDAF、UDTF
  2. java集合框架07——Map架构与源代码分析
  3. thinkphp mysql desc table_Thinkphp 连接数据库、查询、添加
  4. iphone屏幕录制_如何将iPhone投屏到Mac上?iphone投屏到苹果电脑方法
  5. android listview 数据同步,android中ListView数据刷新时的同步方法
  6. burp爆破线程设置多少_你知道线程池创建多少线程比较合理吗?
  7. 第一章:Python的基本数据类型-第二节:Python中表示“有序”(序列)的数据类型
  8. 服务器link系统命令,可以使用命令(7)来查看网络接口的运行情况。输入该命令后,系统的输出信息如下。...
  9. 二、三角高程测量计算(C#语言)
  10. linux学习笔记-切换目录
  11. 网上书店软件需求说明书
  12. win10添加新硬盘
  13. 计算机桌面计划,电脑桌面日程安排软件
  14. Word处理控件Aspose.Words功能演示:使用 Python 合并 Word 文档
  15. 【VBS教程3】:VBS如何激活指定窗口
  16. 别踩白块_前端H5游戏毕设
  17. 秒懂1U、2U、4U和42U服务器
  18. 【12月21日】A股滚动市盈率PE历史新低排名
  19. android时间格式am pm,将字符串在12(PM / AM)小时AM PM时间转换为24小时时间android
  20. 新拟态设计html,新拟态UI设计怎么做?来用Neumorphism在线工具吧

热门文章

  1. 钱多多软件制作第七天
  2. ECshop4.1版本搭建
  3. 不羡鸳鸯不羡仙,一行代码调半天。SpringBoot集成任务调度,实现每天定时发送天气预报,随时做好“广冻人”的心理准备
  4. html5的基本工作原理,HTML5基础开发教程
  5. 项目1----泰戈尔诗集
  6. 2021上半年程序员新书大盘点
  7. java编写某计算器控制台程序_计算器 - 进阶的憨狗 - 博客园
  8. shen_tian_hao的C++快快编程AC代码库(每周更新)
  9. 杂事记诗-- 读网文《穷鬼的上下两千年》有感
  10. java取石子_HDU 1527 取石子游戏