luogu#P11524. [THUPC2025 初赛] 背向而行
[THUPC2025 初赛] 背向而行
题目描述
有 堆积木,其中第 堆积木位于坐标 的位置,有 块。
反复执行如下操作,直至无法操作:
- 如果存在两块积木坐标相同,则找到满足条件的积木中坐标最小的两块,将一块坐标减 ,另一块坐标加 ,
可以证明在有限次操作之后,所有积木的坐标都会不同,此时无法进行操作。
多次询问,每次给定正整数 ,问最后左数第 块积木的位置。保证询问的 严格递增。
输入格式
第一行一个正整数 。保证 。
接下来 行,其中第 行两个正整数 。保证 ,。保证 按照输入的顺序严格递增,即 。
接下来一行一个正整数 ,表示询问个数。保证 。
接下来 行,每行一个正整数 ,表示一次询问。保证 。保证询问的 严格递增。
输出格式
输出 行,每行一个整数,其中第 行表示第 个询问的答案。
2
3 3
4 2
2
2
4
2
5
提示
我们用长度为 5 的单调不降数字字符串描述从左往右五块积木的位置,那么操作过程如下所示:
$33344 \to 23444 \to 23345 \to 22445 \to 13445 \to 13355 \to 12455 \to 12446 \to 12356$
最终第二块积木坐标为 2,第四块积木坐标为 5。
题目来源
来自 2025 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2025)初赛。
题解等资源可在 https://gitlink.org.cn/thusaa/thupc2025pre/tree/master 查看。