[GDKOI2023 提高组] 游戏

Luogu
IDLGP10105
Time1000ms
Memory1024MB
DifficultyP6
2023广东Special Judge
你正在树上玩游戏。 给定一棵 $n$ 个结点的树,有 $Q$ 次询问,每次给定 $x, y, z$,你要找到三个点 $(u, v, w)$ 满足 $\operatorname{dis}(u, v) = x, \operatorname{dis}(u, w) = y, \operatorname{dis}(v, w) = z$。其中 $\operatorname{dis}(u, v)$ 表示树上 $u$ 和 $v$ 两点唯一简单路径所包含的边数,$\operatorname{dis}(u, u) = 0$。 保证有解。 ## Input 第一行一个整数 $n$,表示树的结点数。 接下来 $n - 1$ 行每行两个点 $u, v$ 表示一条 $u$ 到 $v$ 的边。 接下来一个整数 $Q$,表示询问次数。 接下来 $Q$ 行,每行三个整数 $x, y, z$ 表示一组询问。 ## Output 输出 $Q$ 行,每行三个整数 $u, v, w$,满足 $\operatorname{dis}(u, v) = x, \operatorname{dis}(u, w) = y, \operatorname{dis}(v, w) = z$。如果多组合法的 $(u, v, w)$,输出任意一组,保证有解。 [samples] ## Note 对于 10% 的数据,满足 $n, Q ≤ 500$。 对于 20% 的数据,满足 $n, Q ≤ 2 \times 10^3$。 对于另外 20% 的数据,满足 $Q = 1$。 对于另外 20% 的数据,满足 $Q \le 10$。 对于另外 10% 的数据,满足第 $i$ 条边连接 $i$ 和 $i + 1$。 对于另外 10% 的数据,满足 $x = 0$。 对于 100% 的数据,满足 $1 ≤ n, Q ≤ 2 \times 10^5, 0 ≤ x, y, z ≤ 2 \times 10^5$。 下发 checker 和 checker.exe,分别用于 64 位 linux 以及 windows 下的答案校验。 你可以使用 `./checker < 输入文件名 > < 输出文件名 > < 答案文件名 >` 来检测你的输出文件是否合 法。 实际上下发的 checker 并不会用到答案文件,所以你只需要随便选择一个文件作为答案文件即可。 你需要保证输入文件合法,即格式正确并且有解,否则可能会出现未知错误。 根据你的输出文件的问题,checker 分别会返回一下信息: 1. 如果你的输出文件正确,则 checker 会返回 `Accepted!`。 2. 如果在第 $t$ 组数据,答案错误,则 checker 会返回 `Wrong answer on test t!`。 3. 如果你的格式错误,则 checker 会返回 `wrong output format` 后接相关错误信息。 UPD: 在洛谷下发 chk.cpp。
Samples
Input #1
10
7 10
2 8
10 2
8 1
9 7
4 5
1 6
9 4
4 3
10
3 2 1
5 4 1
6 6 0
3 0 3
1 5 4
2 5 7
6 5 1
2 1 3
2 0 2
2 2 0
Output #1
2 6 1
7 6 1
9 6 6
6 2 6
6 1 7
8 6 4
9 6 1
1 2 6
6 8 6
8 6 6
API Response (JSON)
{
  "problem": {
    "name": "[GDKOI2023 提高组] 游戏",
    "description": {
      "content": "你正在树上玩游戏。 给定一棵 $n$ 个结点的树,有 $Q$ 次询问,每次给定 $x, y, z$,你要找到三个点 $(u, v, w)$ 满足 $\\operatorname{dis}(u, v) = x, \\operatorname{dis}(u, w) = y, \\operatorname{dis}(v, w) = z$。其中 $\\operatorname{dis}(u, v)$ 表示树上 ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 1048576
    },
    "difficulty": {
      "LuoguStyle": "P6"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10105"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "你正在树上玩游戏。\n\n给定一棵 $n$ 个结点的树,有 $Q$ 次询问,每次给定 $x, y, z$,你要找到三个点 $(u, v, w)$ 满足 $\\operatorname{dis}(u, v) =\nx, \\operatorname{dis}(u, w) = y, \\operatorname{dis}(v, w) = z$。其中 $\\operatorname{dis}(u, v)$ 表示树上 ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments