QOJ.ac

QOJ

Time Limit: 8.0 s Memory Limit: 1024 MB Total points: 100

#15468. Fair Problemset

統計

本题采用了与 M 题“三重公平性”(Triple Fairness)完全相同的“公平题集”(Fair Problemset)定义。

ICPC 是一项团队竞赛。每支队伍有三名成员。在比赛开始时,大多数队伍会将 $3n$ 道题目平均分配。他们通常使用以下两种方法之一来分配题目:

  1. 顺序分配(Sequential Distribution):每位成员从 $3n$ 道题目中取走一个长度为 $n$ 的连续区间。具体来说,第一位成员取走第 $1, \dots, n$ 题,第二位成员取走第 $n + 1, \dots, 2n$ 题,第三位成员取走第 $2n + 1, \dots, 3n$ 题。
  2. 跳跃分配(Jump Distribution):每位成员取走 $3n$ 道题目中下标除以 3 余数相同的题目。具体来说,第一位成员取走第 $1, 4, 7, \dots, 3n - 2$ 题,第二位成员取走第 $2, 5, 8, \dots, 3n - 1$ 题,第三位成员取走第 $3, 6, 9, \dots, 3n$ 题。

ICPC 首尔区域赛科学委员会必须准备一套包含 $3n$ 道题目的题集。每道题的难度用 $1$ 到 $n$ 之间的整数表示。对于每个难度等级,恰好有三道题目。因此,题集中的难度排列可以看作是一个长度为 $3n$ 的难度序列,其中包含 $n$ 个难度等级,每个等级各出现三次。

为了防止队伍因选择的题目分配方式而获得任何优势或劣势,ICPC 首尔区域赛科学委员会定义了一个标准,称为“公平题集”。如果一个长度为 $3n$ 的难度序列满足以下两个条件,则称其为公平题集:

  1. 顺序分配公平性:当使用顺序分配时,对于每个难度等级 $i$ ($1 \le i \le n$),三位成员中的每一位都恰好获得一道难度为 $i$ 的题目。
  2. 跳跃分配公平性:当使用跳跃分配时,对于每个难度等级 $i$ ($1 \le i \le n$),三位成员中的每一位都恰好获得一道难度为 $i$ 的题目。

换句话说,无论选择哪种分配方法,每位团队成员都必须被分配到 $1$ 到 $n$ 每个难度等级的题目各一道。

给定一个正整数 $k$,编写一个程序,计算对于每个 $n = 1, 2, \dots, k$,长度为 $3n$ 的公平题集序列的数量。

输入格式

程序从标准输入读取数据。输入仅包含一行,包含两个整数 $k$ 和 $m$ ($1 \le k \le 10^6$; $10^8 < m < 10^9$; $m$ 是一个质数)。

输出格式

程序应向标准输出写入数据。你需要打印 $k$ 行。在第 $n$ 行 ($1 \le n \le k$),打印长度为 $3n$ 的公平题集序列的数量,对 $m$ 取模。

样例

输入 1

2 993244853

输出 1

1
2

输入 2

3 998244353

输出 2

1
2
12

说明

以下是长度为 9 ($= 3 \times 3$) 的 12 个公平题集序列:

  • i. 1 2 3 2 3 1 3 1 2
  • ii. 1 2 3 3 1 2 2 3 1
  • iii. 1 3 2 2 1 3 3 2 1
  • iv. 1 3 2 3 2 1 2 1 3
  • v. 2 1 3 1 3 2 3 2 1
  • vi. 2 1 3 3 2 1 1 3 2
  • vii. 2 3 1 1 2 3 3 1 2
  • viii. 2 3 1 3 1 2 1 2 3
  • ix. 3 1 2 1 2 3 2 3 1
  • x. 3 1 2 2 3 1 1 2 3
  • xi. 3 2 1 1 3 2 2 1 3
  • xii. 3 2 1 2 1 3 1 3 2

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.