打卡信奥刷题(139)用Scratch图形化工具信奥P10402 [普及组]「XSOI-R1」凑点

「XSOI-R1」凑点

题目描述

小 T 会给你一个长度为 n n n 的整数数列,你手上有一个数 x x x,初始为 0 0 0,你可以执行以下操作,使得最终 x x x c c c 的差小于 1 0 − 4 10^{-4} 104

你可以对 x x x 进行至多 k k k 次操作:

  • add i,对计数器 x x x 加上 a i a_i ai,然后 a i a_i ai 不能再进行任何操作。

  • sub i,对计数器 x x x 减上 a i a_i ai,然后 a i a_i ai 不能再进行任何操作。

  • mul i,对计数器 x x x 乘上 a i a_i ai,然后 a i a_i ai 不能再进行任何操作。

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

  • pow f,将计数器 x x x 变为 x f x^f xf f f f 可以为浮点数。

所有 a i a_i ai 都必须给 x x x 进行一次加或减或乘操作。

在运算过程中, a i a_i ai x x x 的值均不能超过 1 0 10 10^{10} 1010。题目保证有解,如有多种方案,输出一种即可。

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

输入格式

第一行三个整数 n n n k k k c c c

第二行 n n n 个整数,表示序列 a a a

输出格式

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

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

样例 #1

样例输入 #1

5 25 3
3 3 3 3 3

样例输出 #1

5
add 1
add 2
sub 3
sub 4
add 5

样例 #2

样例输入 #2

3 9 3
1 3 3

样例输出 #2

5
sqrt 2
sqrt 3
add 1
mul 2
mul 3

样例 #3

样例输入 #3

3 9 77
4 5 4

样例输出 #3

4
add 1
add 2
pow 2
sub 3

提示

【样例解释 #1】

  • x x x 加上 a 1 a_1 a1,此时 x x x 3 3 3

  • x x x 加上 a 2 a_2 a2,此时 x x x 6 6 6

  • x x x 减去 a 3 a_3 a3,此时 x x x 3 3 3

  • x x x 减去 a 4 a_4 a4,此时 x x x 0 0 0

  • x x x 加上 a 5 a_5 a5,此时 x x x 3 3 3

【样例解释 #2】

  • a 2 a_2 a2 开根号,此时 a = [ 1 , 3 , 3 ] a=[1,\sqrt3,3] a=[1,3 ,3]

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

  • x x x 加上 a 1 a_1 a1,此时 x x x 1 1 1

  • x x x 乘上 a 2 a_2 a2,此时 x x x 3 \sqrt3 3

  • x x x 乘上 a 3 a_3 a3,此时 x x x 3 3 3

【样例解释 #3】

  • x x x 加上 a 1 a_1 a1,此时 x x x 4 4 4

  • x x x 加上 a 2 a_2 a2,此时 x x x 9 9 9

  • x x x 变为 x 2 x^2 x2,此时 x x x 81 81 81

  • x x x 减去 a 3 a_3 a3,此时 x x x 77 77 77

数据规模与约定

本题采用捆绑测试。

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

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

  • subtask 2(15 pts): n ≤ 10 n \leq 10 n10 a i ≤ 2 a_i \leq 2 ai2 k = n + 1 k=n+1 k=n+1

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

对于所有数据: 0 ≤ n ≤ 1 0 5 0 \leq n \leq 10^{5} 0n105 ∑ i = 1 n a i ≤ 1 0 10 \sum_{i=1}^{n}{a_i} \le 10^{10} i=1nai1010 0 ≤ c ≤ 1 0 10 0 \leq c\leq 10^{10} 0c1010

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值