#P5780. [CTSC2011] 排列

    ID: 6540 远端评测题 3000ms 125MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>2011Special JudgeO2优化CTSC/CTS

[CTSC2011] 排列

题目描述

沫沫很喜欢找规律填数字,譬如 1,4,7,(),⋯1,4,7,( ),\cdots,相邻的数相差为 33,括号中的数应为 1010;又如 3,6,12,(),⋯3,6,12,( ),\cdots,每个数是前一个数的两倍,括号中的数应为 2424。

由于常年玩这种游戏,沫沫厌倦了等差数列与等比数列。当看到数列 1,2,⋯ ,n1,2,\cdots,n 时,她想尽量小的改变其顺序使得不存在公差为 AA 或者公比为 BB 的子列。

具体地,给定整数 n,A,Bn,A,B,求一个 11 到 nn 的排列 P=(P1,P2,⋯ ,Pn)P = (P_1,P_2,\cdots,P_n),满足 ∀i,j∈{1,2,⋯ ,n}\forall i,j \in \{1,2,\cdots,n \},若 i<ji<j 且 Pi<PjP_i<P_j,则 Pj≠Pi+AP_j \neq P_i+A 且 Pj≠Pi×BP_j \neq P_i \times B。排列 PP 保留原有顺序的程度 SS 定义为:

$$S = \sum\limits_{1 \le i \le j \le n , P_i<P_j} (P_j-P_i)$$

请你在满足前述要求的前提下,使得 SS 的值尽量大。

输入格式

第一行包含三个正整数 n,A,Bn,A,B,意义如前所述。相邻的数之间用一个空格隔开。

输出格式

第一行包含 nn 个整数,为你求得的排列 PP,相邻的数之间用空格隔开。

4 3 2

4 2 1 3

提示

样例说明

该排列对应的 S=3S = 3,是 n=4,A=3,B=2n=4,A=3,B=2 时能取到的最大的 SS。


评分方式

每个测试点单独评分。

对于每一个测试点,如果你的输出不合法,如文件格式错误、输出的解不符合要求等,该测试点得 00 分。

否则设你输出的排列对应 SS 值为 aa,我们提供的排列对应 SS 值为 bb,你在该测试点的得分如下:

  • 如果 a≤ba \le b,得 1010 分;
  • 否则得分为:

max⁡{[10×(exp⁡(ab−2)],1}\max \{ [10 \times ( \exp (\frac{a}{b}-2)],1 \}


数据规模

总共 1010 个测试点,数据范围满足:

测试点编号 nn AA BB
11 ≤30\le 30 ≤n\le n
22 ≤60\le 60 A mod B≠0A\bmod B\not =0 ≥4\ge 4
33 ≤70\le 70 ≥5\ge 5
44 ≤80\le 80 ≥6\ge 6
55 ≤90\le 90 ≥7\ge 7
66 ≤n\le n =1=1
7,87,8 ≤5\le 5 ≤n\le n
99 =60=60 =21=21 =3=3
1010 =90=90 =18=18 =2=2

在所有输入数据中,AA 与 BB 均为不超过 nn 的正整数。