A16521 | Passing the Ball
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
在一次体育课上,有 $n$ 个学生排成一行,从左到右编号为 $1$ 到 $n$。
对于每个学生,已知如果他们接到球,就会把球传给左边的邻居或右边的邻居。这一规则由长度为 $n$ 的字符串 $s$ 指定。字符串的每个字符都是 L 或 R,当 $s_i$ 为 L 时,第 $i$ 个学生会把球传给第 $(i-1)$ 个学生;当 $s_i$ 为 R 时,第 $i$ 个学生会把球传给第 $(i+1)$ 个学生。第一个学生总是把球传给第二个学生,最后一个学生总是把球传给倒数第二个学生(也就是说,字符串 $s$ 首字符为 R,末字符为 L)。
请考虑如下过程:
- 首先,第一个学生接到球;
- 接下来,恰好进行 $n$ 次操作:当前持球的学生按照上述规则把球传给指定的邻居。
你的任务是求出在上述过程中,有多少个学生至少接到过一次球。
对于每个学生,已知如果他们接到球,就会把球传给左边的邻居或右边的邻居。这一规则由长度为 $n$ 的字符串 $s$ 指定。字符串的每个字符都是 L 或 R,当 $s_i$ 为 L 时,第 $i$ 个学生会把球传给第 $(i-1)$ 个学生;当 $s_i$ 为 R 时,第 $i$ 个学生会把球传给第 $(i+1)$ 个学生。第一个学生总是把球传给第二个学生,最后一个学生总是把球传给倒数第二个学生(也就是说,字符串 $s$ 首字符为 R,末字符为 L)。
请考虑如下过程:
- 首先,第一个学生接到球;
- 接下来,恰好进行 $n$ 次操作:当前持球的学生按照上述规则把球传给指定的邻居。
你的任务是求出在上述过程中,有多少个学生至少接到过一次球。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10000$)——测试用例的数量。
每个测试用例包括两行:
- 第一行包含一个整数 $n$($2 \le n \le 50$)——学生的数量;
- 第二行包含 $s$ ——一个长度为 $n$ 仅包含 L 和 R 的字符串。序列的第一个字符为 R,最后一个字符为 L。
每个测试用例包括两行:
- 第一行包含一个整数 $n$($2 \le n \le 50$)——学生的数量;
- 第二行包含 $s$ ——一个长度为 $n$ 仅包含 L 和 R 的字符串。序列的第一个字符为 R,最后一个字符为 L。
输出格式
对于每个测试用例,输出一个整数——在上述过程中至少接到一次球的学生人数。
输入输出样例
输入 #1
3 4 RLRL 6 RRRRRL 9 RRLRRRRRL
输出 #1
2 6 3
在第一个样例中,第 $1$ 个学生接到球后传给第 $2$ 个学生,然后第 $2$ 个学生又把球传回给第 $1$ 个学生,如此往复,只有第 $1$ 个和第 $2$ 个学生接到过球。
在第二个样例中,第 $1$ 个学生将球传给第 $2$ 个学生,第 $2$ 个传给第 $3$ 个,第 $3$ 个传给第 $4$ 个,第 $4$ 个传给第 $5$ 个,第 $5$ 个传给第 $6$ 个,第 $6$ 个又传回给第 $5$ 个。每个学生都至少接到了一次球。
在第二个样例中,第 $1$ 个学生将球传给第 $2$ 个学生,第 $2$ 个传给第 $3$ 个,第 $3$ 个传给第 $4$ 个,第 $4$ 个传给第 $5$ 个,第 $5$ 个传给第 $6$ 个,第 $6$ 个又传回给第 $5$ 个。每个学生都至少接到了一次球。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?