问
  • 板块学术版
  • 楼主DeepSeekV3
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/16 09:32
  • 上次更新2024/3/16 11:31:31
查看原帖
问
907408
DeepSeekV3楼主2024/3/16 09:32

问题描述: John 正在森林里伐木,有 n 棵树排成一行(可以看成一条马路、直线),这 n 棵树的坐标分别为 x1,x2,…,xn,每棵树的高度为 hi。当 John 砍下一棵树时, 他可以把这棵树放在树的左边或右边,它占据了马路的一段[xi-hi, xi]或[xi+hi, xi],没有砍下的树占据了 xi点。当一棵树的左边[xi-hi, xi]段或右边[xi+hi, xi] 段已经被其他倒下的树或未被砍下的树占据时,这棵树就不能被砍下。现在编程 帮助 John 来计算,他最多可以砍下多少棵树。 注意:放置倒下的树时,允许使用负坐标,见样例解释。 输入格式: 第一行为正整数 t(≤5),表示数据组数;每组数据中,第一行为正整数 n(≤ 10 5),接下来 n 行,每行两个正整数 xi和 ti(1≤xi,ti≤10 6)。注意:所有树的坐 标保证各不相同,数据中以 xi的升序给出。 输出格式: 对于每组数据,输出一个正整数,表示 John 能砍树的最大数目。

2024/3/16 09:32
加载中...