题目

 

首先可以把题目转换为一个直角坐标系:

CF 847D 2017-2018 ACM-ICPC, NEERC

然后如果不停留,那么就是一条y=x的直线,其中在直线下方的t[i]且i<=T的都可以被吃掉。

如果在i号地方停留了t seconds 那么直线就会在x=i的地方上移t,大概如下:

CF 847D 2017-2018 ACM-ICPC, NEERC

可以贪心考虑,如果在后面停留不如在前面,因为这样可以框进去更多位置 。

所以直接将 y=x 换成 y=x+b  

(假设在第一个位置停留。)

这样把所有地方的停留全部转化为0号点的停留。

就可以枚举y= t 时x的位置,也就可以算出b.

最后再算出多少个t[i]在这条直线的下方,且i+b<=T.

In O(n log n).

Attention : 

1.

由于只可以向前走,所以b>=0

2.

最后一步走到i,不可以吃在i处的食物,所以这点需要注意!尝试自己解决这种情况。As an exercise.

相关文章:

  • 2021-06-11
  • 2022-12-23
  • 2021-05-28
  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
猜你喜欢
  • 2022-01-04
  • 2021-11-02
  • 2022-01-01
相关资源
相似解决方案