A4978 | 擂台赛
时间限制2s
内存限制256MB
通过 / 提交0/0
题目描述
现有一场擂台赛,参赛选手共计 $2^n$ 名。每位选手具有一个能力值,且彼此间的能力值毫无重复。比赛初始阶段,裁判长会将所有选手的参赛序号进行彻底打乱。待序号打乱完毕后,比赛将严格按照如下规则有序展开:
在每一轮比赛中,针对本轮的选手,编号为 $2i - 1$ 的选手会与编号为 $2i$ 的选手进行激烈对决,其中能力值更高的选手将成功晋级,成为下一轮比赛中编号为 $i$ 的选手。如此循环往复,比赛持续进行,直至最终赛场上仅剩下 $1$ 名选手为止。
我们特别规定,当赛场上只剩下一名选手时,该轮被记为第 $n + 1$ 轮。
如今,我们心中怀有这样的疑问:对于每一位选手而言,在所有可能的序号分配情形下,最晚在第几轮淘汰?并且,在这些所有可能的序号分配情况中,又有多少种情形能够让选手取得自己的最佳成绩呢?
情况数可能很多,将结果对 $998244353$ 取模。
在每一轮比赛中,针对本轮的选手,编号为 $2i - 1$ 的选手会与编号为 $2i$ 的选手进行激烈对决,其中能力值更高的选手将成功晋级,成为下一轮比赛中编号为 $i$ 的选手。如此循环往复,比赛持续进行,直至最终赛场上仅剩下 $1$ 名选手为止。
我们特别规定,当赛场上只剩下一名选手时,该轮被记为第 $n + 1$ 轮。
如今,我们心中怀有这样的疑问:对于每一位选手而言,在所有可能的序号分配情形下,最晚在第几轮淘汰?并且,在这些所有可能的序号分配情况中,又有多少种情形能够让选手取得自己的最佳成绩呢?
情况数可能很多,将结果对 $998244353$ 取模。
输入格式
第一行输入一个整数 $n$ , 代表有 $2^n$ 名选手。
第二行输入 $2^n$ 个整数 $v_i$ ,代表着第 $i$ 名选手的能力值。
第二行输入 $2^n$ 个整数 $v_i$ ,代表着第 $i$ 名选手的能力值。
输出格式
输出 $n$ 行,每行输出两个整数,第一个整数代表着第 $i$ 名选手的最好的成绩, 第二个数代表取模之后的情况数。
输入输出样例
输入 #1
2 1 2 3 4
输出 #1
1 24 2 8 2 16 3 24
输入 #2
3 9 68 11 23 57 66 77 67
输出 #2
1 40320 3 23040 2 5760 2 11520 3 1152 3 4608 4 40320 3 11520
数据范围
- $1 \le n \le 20$
- $1 \le v_i \le 10^9$
样例解释
针对样例一,这儿有一种可行的选手编号打乱方式。打乱编号后,选手 $1$ 记编号为 $3$,选手 $2$ 记编号为 $2$ ,选手 $3$ 记编号为 $1$ ,选手 $4$ 记编号为 $4$ 。
第一轮比赛:
第一场由编号为 $1$ 的选手 $3$ 对战编号为 $2$ 的选手 $2$。由于选手 $3$ 的能力值更高,所以选手 $3$ 晋级下一轮,且在下一轮中记编号为 $1$;选手 $2$ 在本轮被淘汰,成绩记为 $1$。
第二场由编号为 $3$ 的选手 $1$ 对战编号为 $4$ 的选手 $4$ 。因为选手 $4$ 的能力值占优,选手 $4$ 晋级下一轮,下一轮记编号为 $2$ ;选手 $1$ 在本轮被淘汰,成绩记为 $1$。
第二轮比赛:
由编号为 $1$ 的选手 $3$ 对战编号为 $2$ 的选手 $4$。选手 $4$ 能力值更胜一筹,晋级下一轮,下一轮记编号为 $1$;选手 $3$ 在本轮被淘汰,成绩记为 $2$。
第三轮比赛:
场上仅剩下编号为 $1$ 的选手 $4$,选手 $4$ 最终成绩为 $3$。
- $1 \le n \le 20$
- $1 \le v_i \le 10^9$
样例解释
针对样例一,这儿有一种可行的选手编号打乱方式。打乱编号后,选手 $1$ 记编号为 $3$,选手 $2$ 记编号为 $2$ ,选手 $3$ 记编号为 $1$ ,选手 $4$ 记编号为 $4$ 。
第一轮比赛:
第一场由编号为 $1$ 的选手 $3$ 对战编号为 $2$ 的选手 $2$。由于选手 $3$ 的能力值更高,所以选手 $3$ 晋级下一轮,且在下一轮中记编号为 $1$;选手 $2$ 在本轮被淘汰,成绩记为 $1$。
第二场由编号为 $3$ 的选手 $1$ 对战编号为 $4$ 的选手 $4$ 。因为选手 $4$ 的能力值占优,选手 $4$ 晋级下一轮,下一轮记编号为 $2$ ;选手 $1$ 在本轮被淘汰,成绩记为 $1$。
第二轮比赛:
由编号为 $1$ 的选手 $3$ 对战编号为 $2$ 的选手 $4$。选手 $4$ 能力值更胜一筹,晋级下一轮,下一轮记编号为 $1$;选手 $3$ 在本轮被淘汰,成绩记为 $2$。
第三轮比赛:
场上仅剩下编号为 $1$ 的选手 $4$,选手 $4$ 最终成绩为 $3$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?