#THU20222C. 圆上计数

    ID: 209 Type: Default 1000ms 512MiB Tried: 2 Accepted: 1 Difficulty: 4 Uploaded By: Tags>清华推研机试考研组合数学容斥原理算法基础前缀和

圆上计数

本题的前 5 个子任务为场上原始的数据范围,我们添加了 4 个额外子任务,总分 105 分。

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

在一个周长为 CC 的圆形上分布有 NN 个点,问有多少种选择 33 个点的方案使得圆心在以这三个点为顶点的三角形的内部(在三角形的边上是不合法的方案)。

圆上有 CC 个等距分布的位置,所有的 NN 个点只有可能分布在这 CC 个位置上。将这些位置顺时针编号为 00C1C - 1,第 ii 个点所处的位置是 aia_i

输入格式

从标准输入读入数据。

输入的第一行包含两个正整数 N,CN, C

输入的第二行包含 NN 个非负整数 aia_i

输出格式

输出到标准输出。

输出一个非负整数,表示对应的答案。

6 10
0 2 5 4 8 9
4

样例 1 解释

该样例一共有 44 种选择的方案。

8 10
0 2 5 5 6 9 0 0
6

样例 2 解释

注意到有些点在圆上的同一位置,但是他们的编号不同,选择方案也会因此独立计算,故一共有 66 种选择的方案。

子任务

对于原始的 5 组子任务,保证 1N105, 1C1051 \le N \le 10^5,~1 \le C \le 10^5

对于额外子任务,保证 1N106, 1C1061 \le N \le 10^6,~1 \le C \le 10^6

对于所有数据,保证 0ai<C0 \le a_i \lt C

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务 分值 NN \le CC \le 特殊性质
1 20 100100 100100 ×\times
2 10510^5
3 10001000 10510^5
4 10510^5 \checkmark
5 ×\times
6 1 200200 10610^6
7 10610^6 60006000
8 2 10610^6 \checkmark
9 1 ×\times

特殊性质:保证不存在两个点位于圆上同一位置。