题目链接:
Codeforces 545 C Woodcutters
题意:
有n棵树,每棵树都有位置坐标xixi和高度hihi,每棵树可以向左砍倒或者向右砍倒,也可以不砍,但是砍倒不能重复占用位置,每棵树本身占一个位置,问最多能砍多少棵树?

/**************DP Solution**************/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
using namespace std;
const int maxn=100010;int n,x[maxn],h[maxn],dp[maxn][3];int main()
{//freopen("in.txt","r",stdin);while(~scanf("%d",&n)){for(int i=1;i<=n;i++){scanf("%d%d",&x[i],&h[i]);}if(n<=2){printf("%d\n",n);continue;}x[n+1]=INT_MAX;memset(dp,0,sizeof(dp));dp[1][0]=0;dp[1][1]=1;if(x[1]+h[1]<x[2]) dp[1][2]=1;for(int i=2;i<=n;i++){//ith tree stay at positiondp[i][0]=max(dp[i-1][0],max(dp[i-1][1],dp[i-1][2]));//cut ith to left, must if(x[i]-h[i]>x[i-1]) dp[i][1]=max(dp[i][1],max(dp[i-1][0],dp[i-1][1])+1);if(x[i]-h[i]>x[i-1]+h[i-1]) dp[i][1]=max(dp[i][1],dp[i-1][2]+1);//cut ith tree to right, mustif(x[i]+h[i]<x[i+1]){dp[i][2]=max(dp[i-1][0],max(dp[i-1][1],dp[i-1][2]))+1;}}int ans=max(dp[n][0],max(dp[n][1],dp[n][2]));printf("%d\n",ans);}return 0;
}
/*********Greedy Solution**********/
//46MS 2800K
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
using namespace std;
const int maxn=100010;int n,x[maxn],h[maxn];int main()
{while(~scanf("%d",&n)){for(int i=1;i<=n;i++){scanf("%d%d",&x[i],&h[i]);}        if(n<=2){printf("%d\n",n);continue;}int ans=2;for(int i=2;i<n;i++){if(x[i]-h[i]>x[i-1]){ans++;}else if(x[i]+h[i]<x[i+1]){ans++;x[i]+=h[i];}}printf("%d\n",ans);}return 0;
}

Codeforces 545 C Woodcutters(贪心/DP)相关推荐

  1. CodeForces - 1481E Sorting Books(贪心+dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,每次操作可以将任意一本书放到序列的末尾,问最少需要操作多少次,才能使得相同的数字挨在一起 题目分析:不难看出,对每个位置的数都操作一次,是 ...

  2. K-periodic Garland CodeForces - 1353E(暴力+贪心+dp)

    题意: 给定长为 n 的 0, 1 字符串,你可以通过一次操作改变一个字符(0 变 1 or 1 变 0),问最少几次操作可以使任意相邻两个 1 之间的距离为 k ? 题目: You are give ...

  3. Codeforces Round #699 (Div. 2) E.Sorting Books(贪心+DP / 线段树)超高质量题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 E - Sorting Books 一排书架上有 nnn 本书排成一排,每本书上有一个颜色 aia_i ...

  4. URAL 1203 Scientific Conference(贪心 || DP)

    Scientific Conference 之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP.多校如果有计算几何一定要干掉-.- 题意:给 ...

  5. 【bzoj3174】[Tjoi2013]拯救小矮人 贪心+dp

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人,我们知道他从脚 ...

  6. CodeForces - 1312E Array Shrinking(区间dp)(通俗易懂)

    CodeForces - 1312E Array Shrinking(区间dp) 题目链接: 没做出来,看了一下别人的题解,才A掉.但网上没发现一篇讲得比较易懂的题解,所以就准备写一篇再加上我自己的理 ...

  7. 【CodeForces 1253C --- Sweets Eating】DP

    [CodeForces 1253C --- Sweets Eating]DP Description Tsumugi brought n delicious sweets to the Light M ...

  8. 【CodeForces - 545 ABCDE套题训练题解】贪心, 构造,模拟,dp,最短路树(Dijkstra+变形)

    A: 题干: Input The first line contains integer n (1 ≤ n ≤ 100) - the number of cars. Each of the next  ...

  9. CodeForces - 1453E Dog Snacks(树形dp+贪心)

    题目链接:点击查看 题目大意:给出一棵有根树,现在需要选择一个最小的 k 值,可以满足下列的 n 次操作: 起始时位于点 1(根节点) 每一步选择一个未被遍历的节点中,距离最近的,且必须满足此距离小于 ...

最新文章

  1. 在JFinal的Controller中接收json数据
  2. 用WPF山寨折线图,抄?是狠狠的抄
  3. [vue.js]Invalid options in vue.config.js: publicPath is not allowed
  4. 【转载】JS获取浏览器版本信息
  5. Windows server 2003域控直接迁移到2012[史上最详细]
  6. 【中级】【后台】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 03 - 腾讯后台初始化 和 CodeIgniter
  7. 易语言不用oracle客户端_大叔学中文编程之易语言02
  8. 今日头条电脑版官方版_雷霆拯救电脑版-雷霆拯救pc版下载v4.0.9 官方版
  9. Android 支付宝 开源框架
  10. [最后召集:西瓜糖、editasp]微软MVP呕心力作《我的第一本C++书》新鲜出炉,围观即有机会获新书免费送...
  11. 【BZOJ】1270 [BeijingWc2008]雷涛的小猫
  12. python判断文件或文件夹是否存在
  13. 网络工具之GNS3安装及使用
  14. linux如何查看 GPU的信息
  15. 使用freemarker动态设置表格背景色
  16. Latex/CTex/WinEdt自动编号小标题序号(条目/编号/描述)
  17. 蓝桥杯五4史丰收速算
  18. Java、JSP教师信息管理系统
  19. 微型机器学习,会是下一代AI革命吗?
  20. 2015(毕业)秋季校园招聘各种企业笔试面试心得

热门文章

  1. samba 设置 netbios
  2. RAID区别和特点(全)
  3. Android禁用返回键
  4. 黑龙江科学杂志黑龙江科学杂志社黑龙江科学编辑部2022年第24期目录
  5. Unity 报错之 ToLua打包:Unable to find tolua DllNotFoundException: tolua
  6. 2018字节跳动公益数据:今日头条公益图文阅读量突破246亿
  7. mysql 距离计算排序
  8. 图像处理之Lanczos采样放缩算法
  9. HPE BL460c 配置536 FLB网卡VMware Esxi 6.0开启FCOE功能方法
  10. Windows系统解决谷歌翻译不能用的问题