思路:

贪心+并查集

因为45‘,所以可以很方便的算出每个仙人掌的最晚起跳(左端点)

右端点自然也能出来

先按左端点排序

如果他右面的和他相交,就更新

用并查集维护这个更新的关系

更新的同时维护高就好了

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rii register int i
#define rij register int j
using namespace std;
struct xrz{
int x,l,r;
}x[],y[];
int n,bj[],fa[],ans;
int find(int ltt)
{
if(fa[ltt]!=ltt)
{
fa[ltt]=find(fa[ltt]);
}
return fa[ltt];
}
bool cmp1(xrz lk,xrz kl)
{
return lk.l<kl.l;
}
void gx(int l,int r)
{
x[l].l=min(x[l].l,x[r].l);
x[l].r=max(x[r].r,x[l].r);
}
int main()
{
freopen("dinosaur.in","r",stdin);
freopen("dinosaur.out","w",stdout);
scanf("%d",&n);
for(rii=;i<=n;i++)
{
int h;
scanf("%d%d",&x[i].x,&h);
x[i].l=x[i].x-h;
x[i].r=x[i].x+h;
}
sort(x+,x+n+,cmp1);
for(rii=;i<=n;i++)
{
fa[i]=i;
}
for(rii=;i<=n-;i++)
{
int ltt=find(i);
int kkk=find(i+);
if(x[ltt].r>x[kkk].l)
{
gx(ltt,kkk);
fa[kkk]=ltt;
if(x[ltt].l<)
{
cout<<"-1";
return ;
}
}
ans=max(ans,x[ltt].r-x[ltt].l);
}
ans=max(ans,x[n].r-x[n].l);
double an=(double)ans/;
printf("%.1lf",an);
return ;
}

noip模拟赛 动态仙人掌(并查集,贪心)的更多相关文章

  1. 蓝桥杯模拟赛 引爆炸弹-并查集+DFS

    引爆炸弹 在一个 n×m的方格地图上,某些方格上放置着炸弹.手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去. 现在为了引爆地图上的所有炸弹, ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. NOIP模拟赛-2018.11.6

    NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...

  4. NOIP 模拟赛

    NOIP 模拟赛 思路:求 n , m 的 gcd,然后用 n , m 分别除以 gcd:若 n 或 m 为偶数,则输出 1/2. 特别的,当 n = m = 1 时,应输出 1/1 #include ...

  5. NOI.AC NOIP模拟赛 第四场 补记

    NOI.AC NOIP模拟赛 第四场 补记 子图 题目大意: 一张\(n(n\le5\times10^5)\)个点,\(m(m\le5\times10^5)\)条边的无向图.删去第\(i\)条边需要\ ...

  6. NOIp模拟赛二十八

    (这是NOIp模拟赛?应该是NOI模拟赛不小心加了个p) 嗯,假装这是正经的NOIp模拟赛,从今天开始也写写题解吧(这几天被虐的惨惨) 今日情况:8+50+0=58 A题输出样例,B题正解写挂,C题不 ...

  7. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  8. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  9. 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程

    数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...

随机推荐

  1. 02.ArrayList和HashTable

    ArrayList集合 数组的缺点: (1).数组只能存储相同类型的数据. (2).数组的长度要在定义时确定. 集合的好处: (1).集合可以存储多种不同类型的数据. (2).集合的长度是可以任意改变 ...

  2. python 基础 知识

    Python Python 是一种强类型 的解释型 动态型语言Python 对象中的不可变 数字,字符串,元组 ,对于不能改变的会创建一个新的                可变  列表 , 字典   ...

  3. 重构指南 - 使用多态代替条件判断(Replace conditional with Polymorphism)

    多态(polymorphism)是面向对象的重要特性,简单可理解为:一个接口,多种实现. 当你的代码中存在通过不同的类型执行不同的操作,包含大量if else或者switch语句时,就可以考虑进行重构 ...

  4. Java开发坏境配置

    在"系统变量"中设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建" ...

  5. arcengine自己做一个工具Tool放到工具箱中

    // Copyright 2010 ESRI // // All rights reserved under the copyright laws of the United States // an ...

  6. 【转】SNR , Eb/N0 , Es/N0区别与联系

    原文地址:http://www.360doc.com/content/16/0505/23/532901_556620735.shtml 通信方向在做仿真时经常用到信噪比这个参数,而对于不同形式的信号 ...

  7. Ruby在Windows上安装

    Ruby在Windows下安装windows下的rails2.02环境搭建 ROR本地安装的技术含量比较高的 一.安装Ruby1.下载Ruby()安装包双击安装,安装过程中注意选中"Enab ...

  8. db2的count()函数和sum()函数的用法

    一.count()函数可以使用参数,例如count(*)和count(列名) count(*)用来计算在指定条件下,满足条件的行数,例如: select count(*) from tablename ...

  9. Selenium2学习(十七)-- js处理日历控件(修改readonly属性)

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  10. WAKE-WIN10-SOFT-CMAKE

    1,CMAKE 官网:https://cmake.org/ 下载:https://cmake.org/download/ BING:https://www.bing.com/search?q=cmak ...