CF2134E.Power Boxes
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个交互题。
你有 n 个盒子,编号从 1 到 n。这些盒子外观完全相同,但每个盒子有一个隐藏的力量值 ai,其取值为 1 或 2。
你需要确定每个盒子的力量值。为此,你可以进行如下实验:最初,第 i 个盒子被放置在数轴上的坐标 i 处(1≤i≤n)。
你可以进行以下两种类型的操作:
- “swap x” (1≤x≤n−1):交换当前位于坐标 x 和 x+1 的两个盒子。注意,这个变化是永久的,会影响之后所有的操作。
- “throw x” (1≤x≤n):向当前位于坐标 x 的盒子扔一个球。如果该盒子的力量值为 p,球会向前跳 p 个单位,落到坐标 x+p(如果那里有盒子,球会继续根据该盒子的力量跳跃)。如此反复,直到球落到没有盒子的坐标为止。作为回应,你会得到球在停止前一共跳跃了多少次。
你的任务是在不超过 ⌈23n⌉ 次操作(包含 swap 和 throw 总数)的前提下,确定每个盒子的力量值。
输入格式
每个测试点包含多个测试用例。第一行包含测试用例数 t(1≤t≤500)。每个测试用例的描述如下:
每个测试用例的第一行包含一个整数 n(2≤n≤1000),表示盒子的数量。
保证所有测试用例中 n 的总和不超过 1000。
输出格式
(本题为交互题,具体交互格式参见题目描述与提示。输入和输出请结合判题器的交互接口实现。)
输入输出样例
输入#1
2 4 2 3 3 2 2 1
输出#1
throw 2 swap 3 throw 2 throw 1 ! 2 1 2 1 throw 1 swap 1 throw 1 ! 1 2
说明/提示
以下为示例交互过程:
SolutionJuryExplanation2有 2 组测试数据。4第一组测试数据有 4 个盒子,隐藏的力量值为 a=[2,1,2,1]。
throw 2
在坐标 2 的盒子扔一个球。球会经过 2→3→5,在 5 坐标停止,因此返回 2。
swap 3
交换坐标 3 和 4 上的盒子。现在第 3 个盒子在坐标 4,第 4 个盒子在坐标 3。
throw 2
在坐标 2 的盒子再扔一个球,球经过 2→3→4→6,在 6 坐标停止,返回 3。注意由于交换,返回值变化了。
throw 1
在坐标 1 的盒子扔一个球,球经过 1→3→4→6,最终停在 6,返回 3。
! 2 1 2 1
最终得到的结果为 [2,1,2,1]。
2第二组测试数据有 2 个盒子,隐藏力量值为 a=[1,2]。
throw 1
在坐标 1 的盒子扔一个球,球经过 1→2→4,返回 2。
swap 1
交换坐标 1 和 2 上的盒子。现在第 1 个盒子在坐标 2,第 2 个盒子在坐标 1。
throw 1
在坐标 1 的盒子扔一个球,球直接跳到 3,返回 1。
! 1 2
最后答案为 [1,2]。
(示例输入输出中的空行仅为排版清晰,你的程序输出时不需要输出这些空行。)
注意,在第一个样例中,所给的操作实际上并无法唯一确定所有盒子的力量值,仅用于说明输入输出格式。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?