AT_agc061_a.[AGC061A] Long Shuffle

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

有一个数组 A1, …, ANA_1,\ \ldots,\ A_N,初始时对于所有 ii,都有 Ai=iA_i = i。定义操作 shuffle(L, R)\mathrm{shuffle}(L,\ R) 如下:

  • 如果 R=L+1R = L + 1,则交换 ALA_L 和 ARA_R 的值,然后结束操作。
  • 否则,先执行 shuffle(L, R−1)\mathrm{shuffle}(L,\ R - 1),再执行 shuffle(L+1, R)\mathrm{shuffle}(L + 1,\ R)。

现在要执行一次 shuffle(1, N)\mathrm{shuffle}(1,\ N)。请输出操作结束后 AKA_K 的值。

对于每个输入文件,需要解答 TT 个测试用例。

输入格式

输入从标准输入读入,格式如下:

TT
case1case_1
case2case_2
⋮\vdots
caseTcase_T

每个测试用例格式如下:

N KN\ K

输出格式

输出共 TT 行。第 ii 行输出第 ii 个测试用例的答案。

输入输出样例

  • 输入#1

    7
    2 1
    2 2
    5 1
    5 2
    5 3
    5 4
    5 5

    输出#1

    2
    1
    2
    4
    1
    5
    3

说明/提示

数据范围

  • 1≤T≤10001 \leq T \leq 1000
  • 2≤N≤10182 \leq N \leq 10^{18}
  • 1≤K≤N1 \leq K \leq N

样例解释 1

当 N=2N=2 时,执行如下操作得到 A=(2,1)A=(2,1)。

  • 执行 shuffle(1,2)\mathrm{shuffle}(1,2),交换 A1A_1 和 A2A_2。

当 N=5N=5 时,执行如下操作得到 A=(2,4,1,5,3)A=(2,4,1,5,3)。

  • 执行 shuffle(1,5)\mathrm{shuffle}(1,5)。
  • 执行 shuffle(1,4)\mathrm{shuffle}(1,4)。
  • 执行 shuffle(1,3)\mathrm{shuffle}(1,3)。
  • ⋮\vdots
  • 执行 shuffle(2,4)\mathrm{shuffle}(2,4)。
  • ⋮\vdots
  • 执行 shuffle(2,5)\mathrm{shuffle}(2,5)。
  • 执行 shuffle(2,4)\mathrm{shuffle}(2,4)。
  • ⋮\vdots
  • 执行 shuffle(3,5)\mathrm{shuffle}(3,5)。
  • ⋮\vdots

由 ChatGPT 4.1 翻译

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

首页