题目描述

《飞扬的小鸟》是一款风靡的小游戏。在游戏中,小鸟一开始位于(0,0)处,它的目标是飞到横坐标为X的某个位置
上。每一秒,你可以选择点击屏幕,那么小鸟会从(x,y)飞到(x+1,y+1),或者不点击,那么小鸟会飞到(x+1,y-1)
。在游戏中还有n个障碍物,用三元组(x[i],a[i],b[i])描述,表示在直线x=x[i]上,y<=a[i]或者y>=b[i]的部分
都是障碍物,碰到或者擦边都算游戏失败。请求出小鸟从(0,0)飞到目的地最少需要点击多少次屏幕。

输入

第一行包含两个整数n(0<=n<=500000),X(1<=X<=10^9)。
接下来n行,每行三个整数x[i],a[i],b[i](0<x[i]<X,-10^9<=a[i]<b[i]<=10^9)。
数据保证x[i]<x[i+1]。

输出

如果无论如何都飞不到目的地,输出NIE,否则输出点击屏幕的最少次数。

样例输入

4 11
4 1 4
7 -1 2
8 -1 3
9 0 2

样例输出

5

提示

因为只要通过最后一个障碍就能通关,所以只要维护通过每个障碍时最高及最低能飞到的高度范围,判断范围是否为空集就好了。

相邻两个障碍间的距离就是小鸟最高能往上飞多少或最低能往下降多少。

因为每走一步要么是x+1,y-1;要么是x+1,y+1。所以横纵坐标和一定是偶数,将过最后一个障碍后(最低纵坐标+横坐标)/2就是最少需要点击屏幕数。

#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int x[500010];
int a[500010];
int b[500010];
int A,B;
int n;
int main()
{scanf("%d%*d",&n);for(int i=1;i<=n;i++){scanf("%d%d%d",&x[i],&a[i],&b[i]);}for(int i=1;i<=n;i++){int sum=x[i]-x[i-1];A=max(A-sum,a[i]+1);B=min(B+sum,b[i]-1);if((A&1)!=(x[i]&1)){A++;}if((B&1)!=(x[i]&1)){B--;}if(A>B){printf("NIE");return 0;}}printf("%d",(A+x[n])/2);
}

转载于:https://www.cnblogs.com/Khada-Jhin/p/9637257.html

BZOJ4723[POI2017]Flappy Bird——模拟相关推荐

  1. flappy bird游戏源代码揭秘和下载后续---移植到android真机上

    前言:         上一篇博客 flappy bird游戏源代码揭秘和下载,源码是运行在window或者mac系统上的,现在我们需要把代码移植到android真机上,让小鸟在手机里飞起来! ps: ...

  2. 使用神经网络和遗传算法玩转 Flappy Bird

    阅读原文请点击 摘要: 本文展示了针对Flappy Bird游戏设计的机器学习算法.本实验的目标是使用神经网络和遗传算法编写一个人工智能游戏控制器,打出游戏最高分,不服的来挑战! 我们创建一个人工智能 ...

  3. 使用cocos2d-x实现一款类似《Flappy Bird》的游戏

    最近,一只8比特位像素的小鸟霸占了IOS免费游戏排行榜的第一名,这款<Flappy Bird>游戏可谓是一夜爆红,简单并不粗糙的画面.超级玛丽游戏中的绿色通道.眼神有些呆滞的小鸟和几朵白云 ...

  4. 游戏——Flappy Bird

    说明 这个寒假玩了会Flappy Bird,感觉挺好玩,于是试着自己写了一个出来,希望大家喜欢! 游戏中界面十分简洁,可是别看它这么简单,实际上奥妙重重! 在源码中可以见到有许多宏定义,是游戏中的一些 ...

  5. 【新手上路】Java必备小游戏——Flappy Bird(飞翔的小鸟)

    <飞翔的小鸟>是一款曾经比较火热的小游戏,本文可以带你你从零开始,一步一步的开发出这款小游戏.如果你只是刚入门java的新手,不用担心,只要你简单掌握了该游戏所需要的javase基础知识, ...

  6. flappy bird游戏源代码揭秘和下载后续---移植到html5网页浏览器

    前言:      我们分析了flappy bird的代码思路(flappy bird游戏源代码揭秘和下载),也移植到了android平台(flappy bird游戏源代码揭秘和下载后续---移植到an ...

  7. cocos2dx-html5 实现网页版flappy bird游戏

    我也是第一次使用cocos2d_html5,对js和html5也不熟,看引擎自带的例子和引擎源码,边学边做,如果使用过cocos2d-x的话,完成这个游戏还是十分简单的.游戏体验地址: http:// ...

  8. Flappy Bird 恶意程序详细分析

    爱小狐狸的小螃蟹 · 2014/03/25 17:55 0x00 背景 Flappy Bird是在年初的时候非常火爆的一个小游戏,但是后来作者在2014年2月10日将其在Apple与Google商店下 ...

  9. Flappy Bird引爆山寨应用热:谁火我就模仿谁

    [导读]由于其模仿的产品已经证明市场的需求,山寨产品的试错风险也更小.移动互联网市场很大,一款山寨的应用和游戏,收益高于其模仿对象也是常见的事情. 腾讯科技 朱旭冬 2月15日报道 如果要举例一些被多 ...

最新文章

  1. python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...
  2. 微型角度编码器 : KYTB-1503-1024
  3. python3----智能检测编码的工具
  4. 【NLP】GPT-3问世这一年,给世界带来的困扰与希望
  5. 最新进展概述:澄清式提问辅助理解信息检索中的用户意图
  6. Android Service介绍
  7. 【css】文字垂直居中
  8. 中石油训练赛 - Racing Gems(最长不下降子序列)
  9. 语义分割深度学习方法集锦
  10. Linux内核crypto子系统的调用逻辑
  11. 用c语言加密,求助:如何用C语言实现LFSR加密
  12. GDAL使用DEM数据计算山体阴影(Hillshade)
  13. linux内核串口调试,linux 串口调试方法
  14. html框架设计左侧嵌套,html页面嵌套使用示例(frameset使用方法)
  15. delphi阿里云短信(支持SendSms短信发送、SendBatchSms短信批量发送、QuerySendDetails查询短信发送记录),D7~XE10可用
  16. python搭建自己的网站_Python+Django搭建自己的blog网站
  17. ictclas java 下载,10分钟开始使用ICTCLAS Java版
  18. August 16th Thursday (八月 十四日 木曜日)
  19. 【OCM第17期开班】第17期11g OCM培训将于7月22号晚20点在腾讯课堂开班,第1场考试免费培训!!!...
  20. 输入192.168.1.1登陆页面打不开怎么办

热门文章

  1. 友友企业地图(Enterprise MAP)
  2. Java并发编程(三)volatile域
  3. HiveQL之Database相关操作
  4. 简易调用及实例化视图
  5. 100c之31:哥德巴赫猜想
  6. 如何确定Oracle是32 Bit(位)的还是64 Bit(位)的?
  7. BREW应用的分发流程
  8. Grounded Theory and Coding Lecture Notes
  9. anything, if you have made a choice
  10. 2019 surf project for a milestone