luogu#P10402. 「XSOI-R1」凑点

    ID: 14357 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数学二分洛谷原创Special JudgeO2优化

「XSOI-R1」凑点

题目描述

小 T 会给你一个长度为 nn 的整数数列,你手上有一个数 xx,初始为 00,你可以执行以下操作,使得最终 xxcc 的差小于 10410^{-4}

你可以对 xx 进行至多 kk 次操作:

  • add i,对计数器 xx 加上 aia_i,然后 aia_i 不能再进行任何操作。

  • sub i,对计数器 xx 减上 aia_i,然后 aia_i 不能再进行任何操作。

  • mul i,对计数器 xx 乘上 aia_i,然后 aia_i 不能再进行任何操作。

  • sqrt i,将 aia_i 赋值为 ai\sqrt {a_i},每个 aia_i 只能开方一次。

  • pow f,将计数器 xx 变为 xfx^fff 可以为浮点数。

所有 aia_i 都必须给 xx 进行一次加或减或乘操作。

在运算过程中,aia_ixx 的值均不能超过 101010^{10}。题目保证有解,如有多种方案,输出一种即可。

本题精度要求较大,请提高算法的精度。

输入格式

第一行三个整数 nnkkcc

第二行 nn 个整数,表示序列 aa

输出格式

第一行一个整数表示总操作数 gg

接下来 gg 行为你的操作序列。

5 25 3
3 3 3 3 3
5
add 1
add 2
sub 3
sub 4
add 5

3 9 3
1 3 3
5
sqrt 2
sqrt 3
add 1
mul 2
mul 3

3 9 77
4 5 4
4
add 1
add 2
pow 2
sub 3

提示

【样例解释 #1】

  • xx 加上 a1a_1,此时 xx33

  • xx 加上 a2a_2,此时 xx66

  • xx 减去 a3a_3,此时 xx33

  • xx 减去 a4a_4,此时 xx00

  • xx 加上 a5a_5,此时 xx33

【样例解释 #2】

  • a2a_2 开根号,此时 a=[1,3,3]a=[1,\sqrt3,3]

  • a3a_3 开根号,此时 a=[1,3,3]a=[1,\sqrt3,\sqrt3]

  • xx 加上 a1a_1,此时 xx11

  • xx 乘上 a2a_2,此时 xx3\sqrt3

  • xx 乘上 a3a_3,此时 xx33

【样例解释 #3】

  • xx 加上 a1a_1,此时 xx44

  • xx 加上 a2a_2,此时 xx99

  • xx 变为 x2x^2,此时 xx8181

  • xx 减去 a3a_3,此时 xx7777

数据规模与约定

本题采用捆绑测试。

  • subtask 0(10 pts):n5n\leq 5k=n2k=n^2,保证可以使用加与减的运算得到解。

  • subtask 1(20 pts):n5n \leq 5k=n2k=n^2,保证可以可以使用加、减、乘、开方运算得到解。

  • subtask 2(15 pts):n10n \leq 10ai2a_i \leq 2k=n+1k=n+1

  • subtask 3(55 pts):k=n+1k=n+1

对于所有数据:0n1050 \leq n \leq 10^{5}i=1nai1010\sum_{i=1}^{n}{a_i} \le 10^{10}0c10100 \leq c\leq 10^{10}