A4503 「THUPC 2026 初赛」生命线

暂无评定 传统题 THUPC 上传者
时间限制2000ms
内存限制512MiB
通过 / 提交0/0

A4503「THUPC 2026 初赛」生命线

暂无评定 传统题 THUPC 上传者
时间限制2000ms
内存限制512MiB
通过 / 提交0/0

题目描述

对于一个长为 nn 的、仅由 a,b,…,z\texttt{a}, \texttt{b}, \ldots, \texttt{z} 构成的字符串 ss ,考虑一张含 nn 个点的无向带权图,每两个点 i,ji, j (i≠j)\left(i \neq j\right) 间有权值为 $\operatorname{LCP}\left(suf_{i}, suf_{j}\right)^{\dagger}$ 的边,其中 sufi=s[i:n]suf_{i}=s[i: n] 。 Ecrade__ 定义字符串 ss 的价值为该图最大生成树的边权之和。

Ecrade__ 想要请你找出所有长为 nn 的、仅由 a,b,…,z\texttt{a}, \texttt{b}, \ldots, \texttt{z} 构成的字符串中,价值第 kk小的任意一个。

${ }^{\dagger} \operatorname{LCP}\left(s_{1}, s_{2}\right)$ 定义为字符串 s1s_{1} 与 s2s_{2} 的最长公共前缀的长度。

输入格式

从标准输入读入数据。

第一行一个整数 TT (1≤T≤2×105)\left(1 \leq T \leq 2 \times 10^{5}\right),表示测试数据组数。

对于每组测试数据,一行两个整数 n,kn, k $\left(1 \leq n, \sum n \leq 4 \times 10^{5}, 1 \leq k \leq \min\left(26^{n}, 10^{15}\right)\right)$。

输出格式

输出到标准输出。

对于每组测试数据,第一行输出第 kk 小的价值,第二行输出一行一个长为 nn 的、价值第 kk 小的字符串。若有多个字符串满足条件,输出其中任意一个即可。

3
2 1
2 676
3 16000

0
hi
1
gg
1
qwq

  • 对于第一组测试数据,长为 22 的字符串中,第 11 小(即最小)的价值为 00,一个满足条件的字符串为 hi\texttt{hi} 。当然,ab\texttt{ab}、yz\texttt{yz} 等字符串也满足条件。
  • 对于第二组测试数据,长为 22 的字符串中,第 676676 小(即最大)的价值为 11,一个满足条件的字符串为 gg\texttt{gg}。当然, aa\texttt{aa}、zz\texttt{zz} 等字符串也满足条件。
  • 对于第三组测试数据,长为 33 的字符串中,第 1600016000 小的价值为 11,一个满足条件的字符串为 qwq\texttt{qwq}。当然,cpp\texttt{cpp}、lol\texttt{lol} 等字符串也满足条件。

题目使用协议

来自 THUPC2026(2026年清华大学学生程序设计竞赛暨高校邀请赛)初赛。

以下『本仓库』皆指 THUPC2026 初赛 官方仓库(https://gitlink.org.cn/thusaa/thupc2026pre)

  1. 任何单位或个人都可以免费使用或转载本仓库的题目;
  2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限;
  3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法;否则,请附上本仓库地址 或 算协公开仓库链接。