QOJ.ac

QOJ

Límite de tiempo: 1 s Límite de memoria: 256 MB Puntuación total: 100

#5750. Siteswap

Estadísticas

Siteswap (https://en.wikipedia.org/wiki/Siteswap) 是一种用于表示杂耍模式的记谱法。

在 siteswap 中,假设抛接动作由两只手交替在等间距的时间节拍上完成。一个 siteswap 模式是一个数字序列,其中抛接动作由非负整数表示,这些整数指定了物体在被接住并再次抛出之前所经过的节拍数。

换句话说,一个 siteswap 模式是一个序列 $a_1, a_2, \dots, a_n$,其中 $a_k$ 描述了在第 $k$ 个节拍上进行的抛接动作,意味着该物体在 $a_k$ 秒后被接住并再次抛出,即在第 $(k + a_k)$ 个节拍上。

例如,数字 1 表示物体被传给另一只手,并在下一回合立即被抛出;数字 2 表示同一只手在同一物体上进行下一次抛接。模式中的特殊数字 0 表示在该节拍上这只手是空的。更多示例请参见说明部分。

如果一个 siteswap 模式可以无限重复,且在每个节拍上当前手最多接住并立即抛出一个物体,则该模式是有效的。

对于每个有效的模式,可以唯一确定执行它所需的物体数量。我们可以进一步将这些物体分类为:最终会改变抛接手的物体,以及不会改变抛接手的物体。给定一个有效的 siteswap 模式,求出每只手不改变抛接手的物体数量,以及会改变抛接手的物体数量。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 $t$ ($1 \le t \le 100$)。接下来是各测试用例的描述。

每个测试用例的第一行包含一个整数 $n$ ($1 \le n \le 10^5$),表示 siteswap 模式的长度。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 10^9$),表示一个有效的 siteswap 模式。

保证所有测试用例的 $n$ 之和不超过 $10^5$。

输出格式

对于每个测试用例,输出三个数字:

  1. 仅由第一只手抛接的物体数量(即仅在奇数节拍上)。
  2. 仅由第二只手抛接的物体数量(即仅在偶数节拍上)。
  3. 由两只手交替抛接的物体数量。

样例

样例输入 1

3
3
1 5 0
6
4 6 4 0 4 0
2
6 4

样例输出 1

0 0 2
2 1 0
3 2 0

说明

模式 1 5 0 需要 2 个物体,每个物体都在两只手之间交替:

注意,由于模式中存在 0,有时会跳过一次抛接。在杂耍动画中,你可以通过同一只手连续使用两次来发现这一点,在图表中它由灰色部分表示。

模式 4 6 4 0 4 0 需要 3 个物体,其中 2 个由一只手抛接,1 个由另一只手抛接:

插图来自 Siteswap Explorer: https://siteswapexplorer.com/。

对于使用打印版或 PDF 版题目的选手:这些插图是动画。请参考竞赛系统中的题目说明以查看动画。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1169EditorialOpen题!解!ILearnedSomeCoding2026-03-01 21:12:50View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.