#LG5048. [POI 2010] ZAB-Frog

    ID: 2735 传统题 1000ms 125MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>数据结构单调队列P3509动态规划 DP2010倍增POI(波兰)深度优先搜索 DFS

[POI 2010] ZAB-Frog

[POI 2010] ZAB-青蛙

题目描述

在一条笔直且很长的 Byteotian 小溪河床上,有 nn 块露出水面的石头,它们到小溪源头的距离依次为 p1<p2<<pnp_1 < p_2 < \cdots < p_n。 一只小青蛙正坐在其中一块石头上,准备开始跳跃训练。

每次跳跃时,青蛙都会跳到距离它当前所在石头第 kk的那块石头上。 具体规则: 如果青蛙在石头 pip_i 上,它会跳到满足以下条件的石头 pjp_j 上:

  1. pip_i 的距离严格小于 pjp_jpip_i 距离的石头数量 不超过 kk
  2. pip_i 的距离小于等于 pjp_jpip_i 距离的石头数量 大于 kk

如果满足条件的石头 pjp_j 不唯一,青蛙会选择最靠近源头(编号最小)的那块。

请你计算:青蛙从每一块石头出发,跳跃 mm 次后,最终会停在哪块石头上?

输入格式

第一行:三个整数 n,k,mn, k, m

  • nn:石头数量
  • kk:跳跃规则参数
  • mm:跳跃次数(1m10181 \le m \le 10^{18}

第二行:nn 个严格递增的整数 p1,p2,,pnp_1,p_2,\dots,p_n,表示石头的位置

输出格式

一行 nn 个整数 r1,r2,,rnr_1,r_2,\dots,r_n rir_i 表示从第 ii 块石头出发,跳 mm 次后停留的石头编号

输入样例1:

5 2 4
1 2 4 7 10

输出样例1:

1 1 3 1 1

提示

样例 #1 解释

图中展示了青蛙从每块石头出发,单次跳跃会跳到的位置。

标签:P3509|动态规划 DP|2010|倍增|单调队列|POI(波兰)|深度优先搜索 DFS

来源

P3509|[POI 2010] ZAB-Frog