4946:[POI 2010] ZAB-Frog

文件提交:无需freopen 内存限制:125 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

# [POI 2010] ZAB-青蛙 ## 题目描述 在一条笔直且很长的 Byteotian 小溪河床上,有 $n$ 块露出水面的石头,它们到小溪源头的距离依次为 $p_1 \lt p_2 \lt \cdots < p_n$。 一只小青蛙正坐在其中一块石头上,准备开始跳跃训练。 每次跳跃时,青蛙都会跳到**距离它当前所在石头第 $k$ 近**的那块石头上。 具体规则: 如果青蛙在石头 $p_i$ 上,它会跳到满足以下条件的石头 $p_j$ 上: 1. 到 $p_i$ 的距离**严格小于** $p_j$ 到 $p_i$ 距离的石头数量 **不超过** $k$; 2. 到 $p_i$ 的距离**小于等于** $p_j$ 到 $p_i$ 距离的石头数量 **大于** $k$。 如果满足条件的石头 $p_j$ 不唯一,青蛙会选择**最靠近源头**(编号最小)的那块。 请你计算:青蛙从**每一块石头**出发,跳跃 $m$ 次后,最终会停在哪块石头上? ## 输入格式 第一行:三个整数 $n, k, m$ - $n$:石头数量 - $k$:跳跃规则参数 - $m$:跳跃次数($1 \le m \le 10^{18}$) 第二行:$n$ 个严格递增的整数 $p_1,p_2,\dots,p_n$,表示石头的位置 ## 输出格式 一行 $n$ 个整数 $r_1,r_2,\dots,r_n$ $r_i$ 表示从第 $i$ 块石头出发,跳 $m$ 次后停留的石头编号 ## 输入样例1: ``` 5 2 4 1 2 4 7 10 ``` ## 输出样例1: ``` 1 1 3 1 1 ``` ## 提示 ### 样例 #1 解释 图中展示了青蛙从每块石头出发,**单次跳跃**会跳到的位置。 ![](https://cdn.luogu.com.cn/upload/image_hosting/yyilx2mp.png) 标签:P3509|动态规划 DP|2010|倍增|单调队列|POI(波兰)|深度优先搜索 DFS ## 来源 P3509|[POI 2010] ZAB-Frog