打卡信奥刷题(370)用Scratch图形化工具信奥P6211[普及组/提高]「SWTR-4」Meeting in the Forest

「SWTR-4」Meeting in the Forest

题目背景

每当月圆时分,五个族群的族猫们都会聚集在小岛上,进行每月的森林大会。蒟星为了了解其它五族猫的特点,就扮成了一只独行猫来到小岛上……

题目描述

森林大会上有 n n n 只猫,每只猫的武力值为 a i a_i ai,于是蒟星列出了下面这样一个方程:

x n + ∑ i = 1 n a i x n − i = 0 x^n+\sum_{i=1}^{n}a_ix^{n-i}=0 xn+i=1naixni=0

  • 通俗地讲,这个方程就是 x n + a 1 x n − 1 + a 2 x n − 2 + ⋯ + a n − 1 x + a n = 0 x^n+a_1x^{n-1}+a_2x^{n-2}+\cdots+a_{n-1}x+a_n=0 xn+a1xn1+a2xn2++an1x+an=0

蒟星根据 TA 优(cu)秀(bi)的数学知识可以知道,这个方程在复数集内有 n n n 个根,不妨把这 n n n 个根设为 x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn

接下来蒟星想要知道森林大会上的猫的实力如何,于是列出了下面一个表达式:

∑ i = 1 n ( b i × ∑ 1 ≤ j 1 < j 2 < ⋯ < j i ≤ n n x j 1 x j 2 ⋯ x j i ) \sum_{i=1}^{n}(b_i\times \sum_{1\le j_1 < j_2 <\cdots< j_i \le n}^{n}x_{j_1}x_{j_2}\cdots x_{j_i}) i=1n(bi×1j1<j2<<jinnxj1xj2xji)

  • ∑ 1 ≤ j 1 < j 2 < ⋯ < j i ≤ n n x j 1 x j 2 ⋯ x j i \sum_{1\le j_1 < j_2 < \cdots < j_i \le n}^{n}x_{j_1}x_{j_2}\cdots x_{j_i} 1j1<j2<<jinnxj1xj2xji 就是从方程的 n n n 个根中选出 i i i 个,求所有可能方案的 i i i 个根的乘积之和。

但蒟星只要这个表达式对 1 0 9 + 7 10^9+7 109+7 取模后的值就好了。

  • 若答案为负数 a a a,请输出 a + ( 1 0 9 + 7 ) a + (10^9+7) a+(109+7)

蒟星把这个任务交给了您,不过他已经告诉你了 n n n a i a_i ai b i b_i bi,您能帮帮 TA 吗?

输入格式

第一行一个整数 n n n —— 表示方程的次数。

第二行 n n n 个整数 a 1 , a 2 , . . . a n a_1, a_2, ... a_n a1,a2,...an —— 意义见题目描述。

第三行 n n n 个整数 b 1 , b 2 , . . . b n b_1, b_2, ... b_n b1,b2,...bn —— 同上。

输出格式

输出一行,一个数,表示这个表达式对 1 0 9 + 7 10^9+7 109+7 取模后的值。

样例 #1

样例输入 #1

2
-2 1
1 1

样例输出 #1

3

样例 #2

样例输入 #2

3
-3 0 4
2 3 4

样例输出 #2

999999997

提示

【样例 1 1 1 说明】

原方程为 x 2 − 2 x + 1 = 0 x^2-2x+1=0 x22x+1=0,此时 x 1 = x 2 = 1 x_1=x_2=1 x1=x2=1

表达式的值为 x 1 + x 2 + x 1 x 2 = 1 + 1 + 1 = 3 x_1+x_2+x_1x_2=1+1+1=3 x1+x2+x1x2=1+1+1=3

【样例 2 2 2 说明】

原方程为 x 3 − 3 x 2 + 4 = 0 x^3-3x^2+4=0 x33x2+4=0,此时 x 1 = − 1 , x 2 = x 3 = 2 x_1=-1,x_2=x_3=2 x1=1,x2=x3=2

表达式的值为

2 ⋅ ( x 1 + x 2 + x 3 ) + 3 ⋅ ( x 1 x 2 + x 1 x 3 + x 2 x 3 ) + 4 ⋅ x 1 x 2 x 3 =   2 × ( − 1 + 2 + 2 ) + 3 × ( − 2 + ( − 2 ) + 4 ) + 4 × ( − 4 ) =   − 10 \begin{aligned}&2\cdot (x_1+x_2+x_3)+3\cdot(x_1x_2+x_1x_3+x_2x_3)+4\cdot x_1x_2x_3\\=\ &2\times(-1+2+2)+3\times(-2+(-2)+4)+4\times (-4)\\=\ &-10\end{aligned} = = 2(x1+x2+x3)+3(x1x2+x1x3+x2x3)+4x1x2x32×(1+2+2)+3×(2+(2)+4)+4×(4)10

因为 − 10 -10 10 为负数,所以输出 − 10 + ( 1 0 9 + 7 ) = 999999997 -10+(10^9+7)=999999997 10+(109+7)=999999997

【数据范围与约定】

对于 10 % 10\% 10% 的数据, n = 1 n=1 n=1

对于另外 20 % 20\% 20% 的数据, n = 2 n=2 n=2

对于 40 % 40\% 40% 的数据, n ≤ 10 n\leq 10 n10

对于 60 % 60\% 60% 的数据, n ≤ 1 0 3 n\leq 10^3 n103

对于 100 % 100\% 100% 的数据, 1 ≤ n ≤ 2 × 1 0 5 1\leq n \le 2 \times 10^5 1n2×105 − 1 0 9 ≤ a i , b i ≤ 1 0 9 -10^9 \le a_i, b_i \le 10^9 109ai,bi109

【Tips】

韦达定理也许会对你有帮助。

【Source】

Sweet Round 04$\ \ $C

idea & std:蒟蒻的名字

Scratch实现

在这里插入图片描述

后续

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

  • 22
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值