QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 1024 MB 満点: 100

#8165. 多次消除

統計

举办了一场有 $N$ 名选手的锦标赛,选手编号为 $1, 2, \dots, N$。 赛场设有 $N$ 个队列,编号为 $0, 1, \dots, N-1$。处于队列 $i$ ($0 \le i \le N-1$) 中的选手表示他们此时已经连续赢得了 $i$ 场比赛。 锦标赛开始时,选手们按 $1, 2, \dots, N$ 的顺序排在队列 $0$ 中。 锦标赛根据以下流程确定每位选手的排名:

  1. 当每个队列中恰好有一名选手时,队列 $i$ 中选手的排名为 $N-i$。此时流程结束。
  2. 在有两个或更多选手的队列中,选择编号最小的队列作为队列 $l$。
  3. 队列 $l$ 中的前两名选手离开队列并进行一场比赛。比赛的胜者加入队列 $l+1$ 的末尾,败者加入队列 $0$ 的末尾。
  4. 返回第 1 步。

求这场锦标赛中进行的比赛场数,结果对 $998244353$ 取模。 假设比赛中没有平局,并且可以证明无论比赛结果如何,答案都是唯一的。

输入格式

输入通过标准输入给出,格式如下:

$N$

  • $N$ 是一个整数。
  • $1 \le N \le 10^5$

输出格式

输出答案。

样例

样例输入 1

3

样例输出 1

4

样例输入 2

5

样例输出 2

26

样例输入 3

100000

样例输出 3

538161387

说明

在第一个样例中,假设编号较小的选手赢得比赛,锦标赛的进程如下:

队列 0 队列 1 队列 2 说明
1, 2, 3 选手 1 和 2 进行比赛。选手 1 加入队列 1,选手 2 加入队列 0。
3, 2 1 选手 3 和 2 进行比赛。选手 2 加入队列 1,选手 3 加入队列 0。
3 1, 2 选手 1 和 2 进行比赛。选手 1 加入队列 2,选手 2 加入队列 0。
3, 2 1 选手 3 和 2 进行比赛。选手 2 加入队列 1,选手 3 加入队列 0。
3 2 1 由于每个队列中恰好有一名选手,锦标赛结束。

锦标赛共进行了 4 场比赛,因此输出为 4。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.