A5087 | 机器人Ⅰ
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
本题是机器人Ⅱ的简化版,题面完全一样,仅数据范围不一样
一条环形纸带被均分成 $n$ 个格子,每个格子被涂上了黑白两种颜色之一。从格子 $1$ 开始顺时针数,依次为格子 $1$,格子 $2$,……,格子 $n$。格子 $i$ 的颜色为 $c_i$;有 $m$ 个程序,第 $j$ 个程序可以被描述为 $(p_j,l_j,r_j)$ ,意义如下:
- 把两个机器人 $Lobot$、$Robot$ 放置到格子 $p_j$ 上。同时我们记目前的颜色 $color_t$ 为 $c_{p_j}$ , 目前时间 $t = 0$ 。
- 若机器人 $Lobot$ 位于格子 $l_j$ 上,并且机器人 $Robot$ 位于 $r_j$ 上,程序结束。否则进行一次移动。 移动规则如下:
- 目前时间 $t$ 增加 $1$ 。
- 若目前颜色 $color_t$ 为黑色 ,$Lobot$ 机器人逆时针移动一次 ,$Lobot$ 到达位置 $q$ 。
- 若目前颜色 $color_t$ 为白色 ,$Robot$ 机器人顺时针移动一次 ,$Robot$ 到达位置 $q$ 。
- 目前的颜色 $color_t$ 更改为 $c_q$ 。
对于第一次移动,我们认为上一次移动的机器人移动到了颜色为 $color_{p_j}$ 的格子上。
对于所有的 $m$ 个程序,判断它会在运行多少秒后停止,或断言它不会停止。
一条环形纸带被均分成 $n$ 个格子,每个格子被涂上了黑白两种颜色之一。从格子 $1$ 开始顺时针数,依次为格子 $1$,格子 $2$,……,格子 $n$。格子 $i$ 的颜色为 $c_i$;有 $m$ 个程序,第 $j$ 个程序可以被描述为 $(p_j,l_j,r_j)$ ,意义如下:
- 把两个机器人 $Lobot$、$Robot$ 放置到格子 $p_j$ 上。同时我们记目前的颜色 $color_t$ 为 $c_{p_j}$ , 目前时间 $t = 0$ 。
- 若机器人 $Lobot$ 位于格子 $l_j$ 上,并且机器人 $Robot$ 位于 $r_j$ 上,程序结束。否则进行一次移动。 移动规则如下:
- 目前时间 $t$ 增加 $1$ 。
- 若目前颜色 $color_t$ 为黑色 ,$Lobot$ 机器人逆时针移动一次 ,$Lobot$ 到达位置 $q$ 。
- 若目前颜色 $color_t$ 为白色 ,$Robot$ 机器人顺时针移动一次 ,$Robot$ 到达位置 $q$ 。
- 目前的颜色 $color_t$ 更改为 $c_q$ 。
对于第一次移动,我们认为上一次移动的机器人移动到了颜色为 $color_{p_j}$ 的格子上。
对于所有的 $m$ 个程序,判断它会在运行多少秒后停止,或断言它不会停止。
输入格式
对于每组测试数据,第一行为两个正整数 $n , m$。
第二行为一个长度为 $n$ 的字符串 $c$,第 $i$ 个字符表示 $c_i$,其中若 $c_i=\texttt{1}$ 表示格子 $i$ 是白色的,若 $c_i=\texttt{0}$ 表示格子 $i$ 是黑色的。
接下来 $m$ 行,每行用三个整数 $p_j,l_j,r_j$ 表示一个程序。
第二行为一个长度为 $n$ 的字符串 $c$,第 $i$ 个字符表示 $c_i$,其中若 $c_i=\texttt{1}$ 表示格子 $i$ 是白色的,若 $c_i=\texttt{0}$ 表示格子 $i$ 是黑色的。
接下来 $m$ 行,每行用三个整数 $p_j,l_j,r_j$ 表示一个程序。
输出格式
对于每组测试数据,输出 $m$ 行,对于第 $i$ 行:
- 若第 $i$ 个程序会停止,输出一个整数表示它运行的秒数 $t_i$。
- 若第 $i$ 个程序不会停止,输出
- 若第 $i$ 个程序会停止,输出一个整数表示它运行的秒数 $t_i$。
- 若第 $i$ 个程序不会停止,输出
-1。输入输出样例
输入 #1
5 4 10110 1 4 2 1 1 1 2 3 1 5 2 4
输出 #1
3 0 23 -1
输入 #2
24 5 111011000111010100000110 4 7 8 14 24 7 8 17 4 22 21 20 12 8 17
输出 #2
-1 31 -1 -1 9
数据范围
- $1 \le n , m \le 3\times 10^3$
- $c_i \in \{1 ,0 \}$
- $1 \le p_j ,l_j ,r_j \le n$
- $1 \le n , m \le 3\times 10^3$
- $c_i \in \{1 ,0 \}$
- $1 \le p_j ,l_j ,r_j \le n$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?