传送门

题目大意:n棵树(10^5),坐标xi,高度hi,把这棵树砍到,可以向右倒[xi,xi+hi]被占,

向左倒[xi-hi,xi]被占,必须要倒的坐标没有被占才能倒,不砍倒就xi被占,问最多砍几棵树。

题解:

比赛时没A,现在A了,刚睡醒做题智商还是在线的....

大多是贪心..我的方法应该不是贪心吧。

如果n>2

对于区间[Lp,Rp],

那么最左边Lp和最右边Rp的树分别向左倒,像右倒就可以。

然后现在需要处理的区间就变成了 [Lp+1,Rp-1].然后按之前的方法处理就可以,相当于范围缩小了嘛

左边向左倒,否则向右倒;右边向右倒,否则向左倒。

不断缩小区间就可以。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 100009
using namespace std; int ans; int n,L,R,Lp,Rp; int x[N],h[N]; int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d%d",&x[i],&h[i]);
if(n==) {cout<<"";return ;}
if(n==) {cout<<"";return ;}
ans=;L=x[];R=x[n];Lp=;Rp=n-;
while(Lp<=Rp)
{
if(Lp==Rp)
{
if(x[Lp]-h[Lp]>L||x[Lp]+h[Lp]<R) ans++;
break;
}
bool flag1=,flag2=;
if(x[Lp]-h[Lp]>L)
{
flag1=true;
ans++;
L=x[Lp];
}else
if(x[Lp]+h[Lp]<x[Lp+])
{
flag1=true;
ans++;
L=x[Lp]+h[Lp];
}
if(!flag1) L=x[Lp];
Lp++;
// if(Lp>Rp) break;
if(x[Rp]+h[Rp]<R)
{
flag2=true;
ans++;
R=x[Rp];
}else
if(x[Rp]-h[Rp]>x[Rp-])
{
flag2=true;
ans++;
R=x[Rp]-h[Rp];
}
if(!flag2)R=x[Rp];
Rp--;
}
cout<<ans<<endl;
return ;
}

CodeForces - 545CWoodcutters的更多相关文章

  1. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  2. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  3. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  4. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  5. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  6. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

  7. CodeForces - 261B Maxim and Restaurant

    http://codeforces.com/problemset/problem/261/B 题目大意:给定n个数a1-an(n<=50,ai<=50),随机打乱后,记Si=a1+a2+a ...

  8. CodeForces - 696B Puzzles

    http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...

  9. CodeForces - 148D Bag of mice

    http://codeforces.com/problemset/problem/148/D 题目大意: 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠.谁先抓到白色老鼠谁就赢. 王妃每次 ...

随机推荐

  1. Eclipse maven创建web项目报错Could not resolve archetype

    1.下载http://repo1.maven.org/maven2/archetype-catalog.xml 通过eclipse下载和网页下载我这里都比较慢,最后用的迅雷下载 2.将本地xml文件配 ...

  2. 使用Runtime自定义KVO,原理浅析

    一.介绍 什么是KVO?全称key-value-observer,键值观察,观察者设计模式的另一种实现.其作用是通过观察者监听属性值的变化而做出函数回调. 二.原理 KVO基于Runtime机制实现, ...

  3. 关于linux的权限系统知识点(drwxr-xr-x)

    在Linux系统中使用 ll 命令可以看到文件的权限信息,如图: 接下来主要解释一下这些权限的含义: 可以看到总的十个字符: 1.第一个字符表示文件类型: d 表示是目录 - 表示是文件 l 表示是链 ...

  4. TypeScript + Webpack 4 开发环境搭建(转)

    前段时间接触到 Microsoft 的 Microsoft.AspNetCore.SpaTemplates 模板,生成的项目使用的默认语言是 TypeScript,虽然以前在此之前并没有用过TypeS ...

  5. 世界GDP数据可视化

    各国GDP数据可视化 数据来自世界银行 导入资源包,如下: Pandas, numpy, seaborn 和 matplotlib import pandas as pd import numpy a ...

  6. CAT 监控搭建

    简介 CAT 是基于 Java 开发的实时应用监控平台,为美团点评提供了全面的实时监控告警服务. 已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统 ...

  7. Python远程linux执行命令

    1.远程登录到linux上,使用到的模块paramiko #远程登陆操作系统 def ssh(sys_ip,username,password,cmds): try #创建ssh客户端 client ...

  8. 【CodeChef】Find a special connected block - CONNECT(斯坦纳树)

    [CodeChef]Find a special connected block - CONNECT(斯坦纳树) 题面 Vjudge 题解 还是一样的套路题,把每个数字映射到\([0,K)\)的整数, ...

  9. 使用 Powershell 远程连接 windows server

    使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...

  10. Web前端——JavaScript笔记

    js 数据类型 字符串可以使用''或者是"" 运算符 == 只比较内容 === 比较内容,也比较类型是否一样,两个为true才为true !== 与上面===相反 var a=12 ...