CF2134E.Power Boxes

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

这是一个交互题。

你有 nn 个盒子,编号从 11 到 nn。这些盒子外观完全相同,但每个盒子有一个隐藏的力量值 aia_i,其取值为 11 或 22。

你需要确定每个盒子的力量值。为此,你可以进行如下实验:最初,第 ii 个盒子被放置在数轴上的坐标 ii 处(1≤i≤n1 \le i \le n)。

你可以进行以下两种类型的操作:

  • “swap xx” (1≤x≤n−11 \le x \le n - 1):交换当前位于坐标 xx 和 x+1x + 1 的两个盒子。注意,这个变化是永久的,会影响之后所有的操作。
  • “throw xx” (1≤x≤n1 \le x \le n):向当前位于坐标 xx 的盒子扔一个球。如果该盒子的力量值为 pp,球会向前跳 pp 个单位,落到坐标 x+px + p(如果那里有盒子,球会继续根据该盒子的力量跳跃)。如此反复,直到球落到没有盒子的坐标为止。作为回应,你会得到球在停止前一共跳跃了多少次。

你的任务是在不超过 ⌈3n2⌉\left\lceil \frac{3n}{2} \right\rceil 次操作(包含 swap 和 throw 总数)的前提下,确定每个盒子的力量值。

输入格式

每个测试点包含多个测试用例。第一行包含测试用例数 tt(1≤t≤5001 \le t \le 500)。每个测试用例的描述如下:

每个测试用例的第一行包含一个整数 nn(2≤n≤10002 \le n \le 1000),表示盒子的数量。

保证所有测试用例中 nn 的总和不超过 10001000。

输出格式

(本题为交互题,具体交互格式参见题目描述与提示。输入和输出请结合判题器的交互接口实现。)

输入输出样例

  • 输入#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有 22 组测试数据。4第一组测试数据有 44 个盒子,隐藏的力量值为 a=[2,1,2,1]a = [2,1,2,1]。
throw 2
在坐标 22 的盒子扔一个球。球会经过 2→3→52 \to 3 \to 5,在 55 坐标停止,因此返回 22。
swap 3
交换坐标 33 和 44 上的盒子。现在第 33 个盒子在坐标 44,第 44 个盒子在坐标 33。
throw 2
在坐标 22 的盒子再扔一个球,球经过 2→3→4→62 \to 3 \to 4 \to 6,在 66 坐标停止,返回 33。注意由于交换,返回值变化了。
throw 1
在坐标 11 的盒子扔一个球,球经过 1→3→4→61 \to 3 \to 4 \to 6,最终停在 66,返回 33。
! 2 1 2 1
最终得到的结果为 [2,1,2,1][2,1,2,1]。

2第二组测试数据有 22 个盒子,隐藏力量值为 a=[1,2]a = [1,2]。
throw 1
在坐标 11 的盒子扔一个球,球经过 1→2→41 \to 2 \to 4,返回 22。
swap 1
交换坐标 11 和 22 上的盒子。现在第 11 个盒子在坐标 22,第 22 个盒子在坐标 11。
throw 1
在坐标 11 的盒子扔一个球,球直接跳到 33,返回 11。
! 1 2
最后答案为 [1,2][1,2]。

(示例输入输出中的空行仅为排版清晰,你的程序输出时不需要输出这些空行。)

注意,在第一个样例中,所给的操作实际上并无法唯一确定所有盒子的力量值,仅用于说明输入输出格式。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页