AT_nupc2024_k.A Shortcut

通过率:0%

AC君温馨提醒

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

题目描述

本题是一个交互式问题(你的程序将与评测程序通过输入输出进行交互)。

给定一个整数 NN,评测机会隐藏一个由 NN 个顶点组成的无向图 GG,其结构如下:

  • GG 的每个顶点编号为 11 到 NN。
  • 对于所有满足 1≤i<N1 \le i < N 的整数 ii,顶点 ii 和顶点 i+1i+1 之间有一条边。
  • 存在唯一一组满足 y−x>1y - x > 1 且 1≤x,y≤N1 \le x, y \le N 的整数对 (x,y)(x, y),使得顶点 xx 和顶点 yy 之间存在一条边。
  • 除上述 NN 条边外,不存在其他边。

你可以对 GG 进行如下操作来查询信息:

  • 任选两个顶点编号 p,qp, q,询问从顶点 pp 到顶点 qq 的最短路径(即经过的边的条数)。

请你在不超过 ⌈log⁡2N+1⌉\lceil \log_2 N + 1 \rceil 次查询之内,确定出 (x,y)(x, y)。

评测机会提供 TT 组测试数据,请你对每一组测试数据都找出 (x,y)(x, y)。

输入格式

首先,标准输入会给出一个整数 TT。

TT

接着,有 TT 组测试数据。每组测试数据格式如下:

首先,输入一个整数 NN。

NN

然后,在每组数据中,你最多可以进行 ⌈log⁡2N+1⌉\lceil \log_2 N + 1 \rceil 次查询。
每次查询请输出如下格式到标准输出,其中 p,qp, q 满足 1≤p,q≤N1 \leq p, q \leq N:

? pp qq

每个查询后,会从标准输入获得一个响应,格式如下:

dist(p,q)\mathrm{dist}(p, q)

其中 dist(p,q)\mathrm{dist}(p, q) 表示从顶点 pp 到顶点 qq 的最短路径长度。如果你的查询不合法,或查询次数超过 ⌈log⁡2N+1⌉\lceil \log_2 N + 1 \rceil 次,评测机会输出 −1-1。

评测机输出 −1-1 时,无论剩余测试数据如何,你的解答均被判为不正确,请立即退出程序。

确定 (x,y)(x, y) 后,请按如下格式输出,这不计入查询次数:

! xx yy

随后若有下一组测试数据,请继续解答。所有测试数据回答完毕后,请终止程序。

输出格式

无

说明/提示

注意事项

  • 每次输出后请务必输出换行并刷新标准输出,否则可能会因为 TLE 被判失败。
  • 评测机对非法输出和非法操作的判定可能不确定,请谨慎处理输入输出。
  • (x,y)(x, y) 在你进行交互之前已经被固定,交互过程中不会变化。

输入输出样例

输入 输出 说明
2 首先输入一个整数 TT。
10 第一组测试数据,首先输入一个整数 NN。
? 1 10 查询 p=1,q=10p = 1, q = 10。
6 得到 dist(1,10)=6\mathrm{dist}(1, 10)=6。
? 8 6 查询 p=8,q=6p = 8, q = 6。
2 得到 dist(8,6)=2\mathrm{dist}(8, 6)=2。
? 3 7 查询 p=3,q=7p = 3, q = 7。
1 得到 dist(3,7)=1\mathrm{dist}(3, 7)=1。
! 3 7 输出 (x,y)=(3,7)(x, y) = (3, 7) 作为答案。可以通过。
3 第二组测试数据,首先输入一个整数 NN。
? 1 2 查询 p=1,q=2p = 1, q = 2。
1 得到 dist(1,2)=1\mathrm{dist}(1, 2)=1。
! 1 3 输出 (x,y)=(1,3)(x, y) = (1, 3) 作为答案。可以通过。所有测试用例解答完毕,程序应终止。

数据范围

  • 1≤T≤1031 \leq T \leq 10^3
  • 3≤N≤1093 \leq N \leq 10^9
  • 1≤x<y≤N1 \le x < y \le N
  • y−x>1y - x > 1
  • T,N,x,yT, N, x, y 均为整数

由 ChatGPT 5 翻译

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

首页