AT_ttpc2023_a.Numerous Elimination

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 名选手,编号为 1,2,…,N1, 2, \dots, N,将参加一场比赛。

比赛场地设置了 NN 个队列,编号为 0,1,…,N−10, 1, \dots, N-1。对于第 ii (0≤i≤N−10 \le i \le N-1)号队列来说,其中站着的选手表示当前连胜了 ii 场。

比赛开始时,所有选手按照 1,2,…,N1, 2, \dots, N 的顺序排在第 00 号队列的前面。

比赛按照以下步骤决定每位选手的最终名次:

  1. 当每个队列中刚好有 11 名选手时,站在队列 ii 的选手的最终排名是 N−iN-i。此时比赛结束。
  2. 在所有当前有至少 22 名选手的队列中,选择编号最小的队列,标记为 ll。
  3. 从队列 ll 的最前面取出 22 名选手,让他们进行一场比赛。胜者排到队列 l+1l+1 的队尾,败者排到队列 00 的队尾。
  4. 返回第 11 步。

请你求出本次比赛一共进行了多少场比赛,并将结果对 998244353998244353 取模后输出。

保证比赛没有平局,且无论每场比赛的结果如何,答案都是唯一确定的。

输入格式

输入通过标准输入给出。

NN

输出格式

请输出答案。

输入输出样例

  • 输入#1

    3

    输出#1

    4
  • 输入#2

    5

    输出#2

    26
  • 输入#3

    100000

    输出#3

    538161387

说明/提示

样例解释 1

假设每场比赛中编号较小的选手总是获胜,则比赛流程如下所示:

列 00 列 11 列 22 说明
1,2‾,3\underline{1, 2}, 3 选手 11 和 22 比赛,11 到列 11,22 到列 00
3,2‾\underline{3, 2} 11 选手 33 和 22 比赛,22 到列 11,33 到列 00
33 1,2‾\underline{1, 2} 选手 11 和 22 比赛,11 到列 22,22 到列 00
3,2‾\underline{3, 2} 11 选手 33 和 22 比赛,22 到列 11,33 到列 00
33 22 11 所有队列都刚好有 11 人,比赛结束

一共进行了 44 场比赛,因此输出 44。

数据范围

  • NN 是整数
  • 1≤N≤1051 \le N \le 10^5

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页