QOJ.ac

QOJ

実行時間制限: 5.0 s メモリ制限: 2048 MB 満点: 100

#18245. 洋葱

統計

洋葱在世界各地的烹饪中被广泛使用。本题是关于几何中的“剥洋葱”过程。

如果对于二维平面上点集中的任意一对点 $p$ 和 $q$,连接 $p$ 和 $q$ 的线段都完全包含在该集合中,则称该点集是凸的。对于点集 $S$,其凸包是包含 $S$ 中所有点的最小凸集。

给你四个整数 $n$、$a$、$b$ 和 $k$。你有一个包含 $n$ 个点的集合 $S$,初始化如下:

$$S = \{(x, (ax + b) \bmod n) \mid x = 0, 1, \dots, n - 1\}$$

你需要执行以下操作 $k$ 次:设 $H$ 为点集 $S$ 的凸包,然后从 $S$ 中移除所有位于凸包 $H$ 边界上的点。

注意,$S$ 可能会变为空集。在这种情况下,其凸包也为空,且其面积为零。

对于每次操作,求出凸包 $H$ 面积的两倍。可以证明,这个值总是整数。

输入格式

输入仅包含一行,有四个整数 $n$、$a$、$b$ 和 $k$($1 \le n \le 10^9$;$0 \le a, b < n$;$1 \le k \le 300$)。

输出格式

输出 $k$ 行。第 $i$ 行应包含一个整数,表示第 $i$ 次操作中凸包面积的两倍。

样例

输入样例 1

4 1 2 1

输出样例 1

8

说明 1

图 L.1 展示了第一次操作中 $S$ 中的点以及凸包的边界。凸包的面积为 4,因此其两倍面积为 8。

图 L.1:样例输入 1 的示意图。

输入样例 2

37 14 7 5

输出样例 2

2257
1406
592
74
0

说明 2

图 L.2 展示了前四次操作中的边界。在第四次操作后,集合 $S$ 变为空集。第五次操作的面积为 0。

图 L.2:样例输入 2 的示意图。

输入样例 3

280 40 12 4

输出样例 3

131040
82880
39200
0

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.