来自 2026 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2026)决赛。
题解等资源可在 https://github.com/dapingguo8/THUPC2026-final 查看。
供电网络修复完毕,全息投影仪终于顺利启动。随着夜色渐深,半空中的全息投影愈发缤纷绚丽。一切就绪后,小 T 和小 S 正式拉开了夜间活动的帷幕,邀请大家结伴,共同参与这场精心筹备、考验双人合作默契的光影游戏"流光解密"。
广场中央的光束交织在一起,缓缓汇聚成一棵全息光树。光树由若干个悬浮的光团结点与连接它们的流光线路组成,呈现出纯粹的树形结构。游戏开始时,所有线路均未点亮,挑战者无法观测到任何未点亮的线路。执行系统操作的 Karuha 会率先向驻守在控制台前的一名挑战者揭示一个神秘数字。随后,各条流光线路会逐一亮起,该挑战者必须在每条线路浮现的瞬间,决定其流动的方向;而站在舞台另一端的搭档,则需仅凭最终形成的有向树结构,准确推断出这个神秘数字。
作为庆典参与者,Neri 和 Noir 决定配合完成这项挑战。
本题为通信题。
在本题中,你的程序将会被运行两次(以下第一次运行简称为阶段一,第二次运行简称为阶段二)。
在阶段一中你的程序会收到待传递的正整数,并通过与交互器进行交互从而向阶段二传递信息;而在阶段二中你的程序会从交互器收到来自阶段一的信息,并根据这些信息推断出传递的正整数。
你需要为两个阶段分别制定一种策略,使得在阶段二中可以根据阶段一传递出的信息推断出这个正整数的值。
注意:你无法通过存储全局变量等方式在阶段二中直接使用阶段一中存储的信息。
为便于辨认,题面描述中人物名的代表关系如下:
- 交互器扮演 Karuha;
- 你的程序在阶段一中扮演 Neri;
- 你的程序在阶段二中扮演 Noir;
阶段一描述
对于驻守在控制台前的 Neri,掌控系统的 Karuha 首先会向她给出两个正整数 ,分别表示全息光树包含的光团数量与神秘数字。
随后,Karuha 将依次点亮 条流光线路,Neri 必须在每条线路亮起时,立即为其指定流动的方向。
阶段二描述
对于站在主舞台另一端的 Noir,她将观察到整棵全息光树充满流光的最终形态。她需要根据这些线路的流动方向,推断出 Karuha 赋予给 Neri 的神秘数字 。
请制定策略,帮助 Neri 和 Noir 完成这一传递过程。
交互过程
本题包含多组测试数据。
输入的第一行包含两个正整数 ,分别代表数据组数与阶段编号。
接下来 组数据:
-
阶段一中 ,此时对于每组数据,你需要先读入一行两个正整数 ,分别代表全息光树 的光团数量与待传递的神秘数字。
接下来你需要执行以下操作 次:
保证全息光树 的最终形态是一棵树。
在本阶段中,请注意:
- 你必须为当前无向线路定向后才能得知下一条无向线路的信息。
-
阶段二中 ,此时对于每组数据,你需要先读入一行一个正整数 ,代表阶段一中定向后全息光树 的光团数量。
接下来你需要读入 行,第 行包含两个正整数 ,代表 的一条有向线路 ,方向为 。
读入完成后,你需要输出一行一个正整数 ,代表阶段一中神秘数字 的值。
在本阶段中,请注意:
- 单个测试点内测试数据输入的先后顺序相较阶段一可能不同。
- 对同一组测试数据, 在阶段一中无向线路定向的先后顺序与 在阶段二中有向线路输入的先后顺序可能不一致。
- 两个阶段中 光团节点的编号保持不变。
- 你必须求出当前测试数据 对应的神秘数字 后才能得知下一组测试数据的信息。
交互器不是自适应的,全息光树 的形态在交互开始前就已经确定,不会随交互流程变动。
在输出完一行后不要忘记刷新输出流。