A5144 | Zombie
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
题目背景
$\color{red}{\mathtt{FM}}$:“~~折磨人的~~有趣的比赛~~终于~~怎么就结束了啊。”
$\color{grey}{\mathtt{ST}}$:“是啊,我要回家睡觉,以回复我的脑力。”
$\color{red}{\mathtt{FM}}$:“我要告诉你一个坏消息:我们被僵尸困住了。”
$\color{grey}{\mathtt{ST}}$:“那很坏了。但是,谁都不能影响我睡觉!”
$\color{red}{\mathtt{FM}}$:“哔,周围有僵尸在游荡,你现在还不能睡觉。”
快来帮帮 ST,让他好好睡觉吧!
---
题目描述
现在有 $N$ 只僵尸围绕着 FM 和 ST,并且它们都在正整数位置游荡。
围绕着的僵尸会瞬移!第 $i$ 只僵尸从点 $a_i$ 出发,每秒都会从位置 $pos$ 瞬移到位置 $pos_{new}$,瞬移公式为:
$$ pos_{new}=((pos+f(pos)) \bmod p)+1 $$
其中,$f(pos)$ 表示数字 $pos$ 的最大数位。
僵尸并不是能无限瞬移的,第 $i$ 只僵尸瞬移 $n_i$ 次后就会停止。
容易发现,僵尸永远不可能到达原点,因此原点是绝对安全的。现在你的任务是计算出每只僵尸最终瞬移到的位置。
$\color{red}{\mathtt{FM}}$:“~~折磨人的~~有趣的比赛~~终于~~怎么就结束了啊。”
$\color{grey}{\mathtt{ST}}$:“是啊,我要回家睡觉,以回复我的脑力。”
$\color{red}{\mathtt{FM}}$:“我要告诉你一个坏消息:我们被僵尸困住了。”
$\color{grey}{\mathtt{ST}}$:“那很坏了。但是,谁都不能影响我睡觉!”
$\color{red}{\mathtt{FM}}$:“哔,周围有僵尸在游荡,你现在还不能睡觉。”
快来帮帮 ST,让他好好睡觉吧!
---
题目描述
现在有 $N$ 只僵尸围绕着 FM 和 ST,并且它们都在正整数位置游荡。
围绕着的僵尸会瞬移!第 $i$ 只僵尸从点 $a_i$ 出发,每秒都会从位置 $pos$ 瞬移到位置 $pos_{new}$,瞬移公式为:
$$ pos_{new}=((pos+f(pos)) \bmod p)+1 $$
其中,$f(pos)$ 表示数字 $pos$ 的最大数位。
僵尸并不是能无限瞬移的,第 $i$ 只僵尸瞬移 $n_i$ 次后就会停止。
容易发现,僵尸永远不可能到达原点,因此原点是绝对安全的。现在你的任务是计算出每只僵尸最终瞬移到的位置。
输入格式
输入共 $N+1$ 行:
第一行 $1$ 个正整数 $N$,表示僵尸数量;
接下来 $N$ 行,每行 $3$ 个正整数 $a_i,p_i,n_i$,分别表示第 $i$ 只僵尸的起点、代入公式 $pos_{new}$ 计算的 $p$ 值和瞬移次数。
第一行 $1$ 个正整数 $N$,表示僵尸数量;
接下来 $N$ 行,每行 $3$ 个正整数 $a_i,p_i,n_i$,分别表示第 $i$ 只僵尸的起点、代入公式 $pos_{new}$ 计算的 $p$ 值和瞬移次数。
输出格式
输出共 $N$ 行:
每行 $1$ 个正整数,表示第 $i$ 只僵尸最终瞬移到的位置。
每行 $1$ 个正整数,表示第 $i$ 只僵尸最终瞬移到的位置。
输入输出样例
输入 #1
5 2 1023 7 2 2 11 3 213 45 3 5 14 5 7 66
输出 #1
31 1 169 2 2
【数据范围】
对于 $100\%$ 的数据,保证:
- $1 \le N \le 20$
- $1 \le a_i,p_i,n_i \le 10^{18}$
| 测试点编号 | $a_i,p_i,n_i \le$ |
|---|---|
| 1~3 | $10^6$ |
| 11~50 | $10^{18}$ |
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?