csp-s模拟87

T1:
  首先k一定大于等于0,因为如果是负数的话,那么就可以一直上下跳动,即出现负环
  那么二分k就好了
 
T2:
  首先可以将鸟看作静止,人在移动
  考虑简单dp,设计\(f_i\)表示在考虑走到i并且打一枪能打到的数量
  很容易可以想到转移方程:\(f_i=max_{i-j \geq k} \{ f_j + shoot_i \}\)
  然后也很容易发现这是错的…… 发现如果一只鸟很长,长到大于k,那么它就有可能被计算两次
  考虑怎么去重,发现一只鸟的贡献是连续的一段区间,那就用线段树维护从每个位置转移的贡献即可
 
T3:
  有点懵,咕咕咕……

posted @ 2019-11-11 17:34  G_keng  阅读(123)  评论(0编辑  收藏  举报