2026年J组模拟赛10连测第5场-T2 程老师的洗牌机
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
文件读写
- 输入文件
shuffle.in - 输出文件
shuffle.out
限制
- 1000ms
- 512MB
题目描述
程老师从魔术社借来一台洗牌机,据说不管多乱的一叠牌,丢进去就能"完美"地洗一遍。程老师来劲了,想看看这机器到底是怎么洗的。
一叠牌共 张,从上到下依次编号 。洗牌机每次工作分成两步:
第一步:均分。 把当前这叠牌从中间分成上半叠和下半叠。如果 是奇数,上半叠比下半叠多一张,即上半叠有 张,下半叠有 张。
第二步:交错。 把两叠牌交错合成新的一叠。具体来说:先放上半叠的第 张,再放下半叠的第 张,然后上半叠的第 张、下半叠的第 张…… 直到某一叠放完。因为上半叠至少不比下半叠少,所以最后一张一定是上半叠的。
程老师把一副全新的牌(从上到下 )放进去,让洗牌机连续工作 次。现在他想知道,最终这叠牌从上到下的编号顺序是什么?请你写个程序帮他算出来。
输入格式
一行两个整数 ,用空格隔开。
输出格式
一行 个整数,用空格隔开,表示洗 次后从上到下的牌编号顺序。
数据范围
| 测试点编号 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| A | |||
| B | |||
| 无 | |||
特殊性质 A: 为奇数(上半叠比下半叠多一张)。
特殊性质 B: 恰好是洗牌周期的倍数。换句话说,洗 次后牌序和最初完全一样,答案就是 。
对于 的数据,,。
6 1
1 4 2 5 3 6
6 2
1 5 4 3 2 6
5 1
1 4 2 5 3
样例解释
样例 2:。第一次洗牌结果同样例 1,得到 。第二次洗牌时,上半叠为 ,下半叠为 。交错:上半叠的 → 下半叠的 → 上半叠的 → 下半叠的 → 上半叠的 → 下半叠的 ,得到 。
样例 3:(奇数),。上半叠比下半叠多一张:上半叠 ,下半叠 。交错:上半叠的 → 下半叠的 → 上半叠的 → 下半叠的 → 上半叠的 ,得到 。