AT_jsc2025_final_c.Prefix Bounding Box, Mod, Minimize
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定正整数 N,M 和素数 P,以及 Y=(Y1,Y2,…,YN),它是 1 到 N 的一个全排列。
对于 1 到 N 的一个全排列 X=(X1,X2,…,XN),定义函数 f(X) 如下:
- 对于所有 2≤k≤N 的整数,定义 Bk 为以下值:
- 对于集合 S={(X1,Y1),(X2,Y2),…,(Xk,Yk)},在二维平面上画出这些点,取覆盖 S 的、边与 x 轴平行的最小面积的矩形,即集合 S 的最小“包围盒”,记这个矩形面积模 M 的余数为 Bk。
- f(X)=max(B2,B3,…,BN)
请你计算满足 f(X) 最小的 X 的个数,并对 P 取模。
现在有 T 组测试数据,请分别作答。
“包围盒”是指:对于给定点集 S,找一个边与坐标轴平行的最小矩形,恰好包含 S 的所有点,且面积最小。
输入格式
输入通过标准输入给出,格式如下:
T
每组测试包含:N M P
Y1 Y2 … YN
输出格式
输出 T 行。
第 i 行输出第 i 个测试用例,f(X) 取得最小值的 X 的个数,对 P 取余。
输入输出样例
输入#1
4 4 6 998244353 2 3 4 1 13 1 10007 1 10 6 5 13 12 8 11 9 2 7 3 4 2 10000000 999999937 1 2 24 101 20250101 13 18 12 8 16 11 2 10 9 4 6 23 22 14 3 17 7 19 1 21 5 15 24 20
输出#1
12 4938 2 888752
说明/提示
样例解释 1
对于第 1 组测试,例如 X=(3,1,4,2) 时,(B2,B3,B4)=(2,0,3),因此 f(X)=3。f(X) 的最小值是 3,满足 f(X)=3 的 X 有 12 个。
对于第 2 组测试,对于所有 X,都有 f(X)=0,因此答案为 13! 对 P=10007 取余。
数据范围
- 1≤T≤100
- 2≤N≤3000
- 1≤M≤107
- 104≤P≤109
- P 是素数
- Y 是 1 到 N 的全排列
- 所有测试用例中 N 的总和不超过 3000
- 输入均为整数
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?