链接:https://ac.nowcoder.com/acm/contest/881/B
来源:牛客网
题意
有
∫
0
∞
1
1
+
x
2
d
x
=
π
2
\int_0^\infty \frac{1}{1+x^2}dx=\frac{\pi}{2}
∫0∞1+x21dx=2π
那么给你一个长度为
n
n
n的序列
a
i
a_i
ai
求解
1
π
∫
0
∞
1
∏
i
=
1
n
(
a
i
2
+
x
2
)
d
x
\frac{1}{\pi}\int_0^\infty \frac{1}{\prod_{i=1}^n(a_i^2+x^2)}dx
π1∫0∞∏i=1n(ai2+x2)1dx
答案为一个分数,
p
q
\frac{p}{q}
qp
输出这个分数的逆元
思路
我们先考虑
n
=
1
n=1
n=1的情况
1
π
∫
0
∞
1
a
2
+
x
2
d
x
\frac{1}{\pi}\int_0^\infty \frac{1}{a^2+x^2}dx
π1∫0∞a2+x21dx
有不定积分
∫
1
a
2
+
x
2
d
x
=
1
a
a
r
c
t
a
n
(
x
a
)
+
C
\int\frac{1}{a^2+x^2}dx=\frac{1}{a}arctan(\frac{x}{a})+C
∫a2+x21dx=a1arctan(ax)+C
所以当
x
→
∞
x\to \infty
x→∞时就是
π
2
a
\frac{\pi}{2a}
2aπ,所以
n
=
1
n=1
n=1的答案就为
1
2
a
\frac{1}{2a}
2a1
然后在考虑 n = 2 n=2 n=2的情况
1
π
∫
0
∞
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
d
x
\frac{1}{\pi}\int_0^\infty \frac{1}{(a^2+x^2)(b^2+x^2)}dx
π1∫0∞(a2+x2)(b2+x2)1dx
考虑不定积分
∫
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
d
x
\int\frac{1}{(a^2+x^2)(b^2+x^2)}dx
∫(a2+x2)(b2+x2)1dx
对于这个不定积分,由于分子是一个乘积,可以我们可以用拆项积分法,及
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
=
α
a
2
+
x
2
+
β
b
2
+
x
2
=
α
(
b
2
+
x
2
)
+
β
(
a
2
+
x
2
)
(
a
2
+
x
2
)
(
b
2
+
x
2
)
\frac{1}{(a^2+x^2)(b^2+x^2)}=\frac{\alpha}{a^2+x^2}+\frac{\beta}{b^2+x^2}=\frac{\alpha(b^2+x^2)+\beta(a^2+x^2)}{(a^2+x^2)(b^2+x^2)}
(a2+x2)(b2+x2)1=a2+x2α+b2+x2β=(a2+x2)(b2+x2)α(b2+x2)+β(a2+x2)
=
b
2
α
+
a
2
β
+
x
2
(
α
+
β
)
(
a
2
+
x
2
)
(
b
2
+
x
2
)
=\frac{b^2\alpha +a^2\beta+x^2(\alpha+\beta)}{(a^2+x^2)(b^2+x^2)}
=(a2+x2)(b2+x2)b2α+a2β+x2(α+β)
所以有
{
b
2
α
+
a
2
β
=
1
α
+
β
=
0
\left\{\begin{matrix} b^2\alpha +a^2\beta=1\\ \alpha+\beta=0 \end{matrix}\right.
{b2α+a2β=1α+β=0
解得
{
α
=
1
b
2
−
a
2
β
=
1
a
2
−
b
2
\left\{\begin{matrix} \alpha =\frac{1}{b^2-a^2}\\ \\ \beta=\frac{1}{a^2-b^2} \end{matrix}\right.
⎩⎨⎧α=b2−a21β=a2−b21
那么原式就可以表示为
1
π
∫
0
∞
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
d
x
=
1
π
(
(
1
b
2
−
a
2
)
∫
0
∞
1
a
2
+
x
2
d
x
+
(
1
a
2
−
b
2
)
∫
0
∞
1
b
2
+
x
2
d
x
)
\frac{1}{\pi}\int_0^\infty \frac{1}{(a^2+x^2)(b^2+x^2)}dx=\frac{1}{\pi}((\frac{1}{b^2-a^2})\int_0^\infty \frac{1}{a^2+x^2}dx+(\frac{1}{a^2-b^2})\int_0^\infty \frac{1}{b^2+x^2}dx)
π1∫0∞(a2+x2)(b2+x2)1dx=π1((b2−a21)∫0∞a2+x21dx+(a2−b21)∫0∞b2+x21dx)
=
(
1
b
2
−
a
2
)
1
2
a
+
(
1
a
2
−
b
2
)
1
2
b
=(\frac{1}{b^2-a^2})\frac{1}{2a}+(\frac{1}{a^2-b^2})\frac{1}{2b}
=(b2−a21)2a1+(a2−b21)2b1
在考虑
n
=
3
n=3
n=3的情况
1
π
∫
0
∞
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
(
c
2
+
x
2
)
d
x
\frac{1}{\pi}\int_0^\infty \frac{1}{(a^2+x^2)(b^2+x^2)(c^2+x^2)}dx
π1∫0∞(a2+x2)(b2+x2)(c2+x2)1dx
同样的考虑不定积分
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
(
c
2
+
x
2
)
=
α
a
2
+
x
2
+
β
b
2
+
x
2
+
γ
c
2
+
x
2
\frac{1}{(a^2+x^2)(b^2+x^2)(c^2+x^2)}=\frac{\alpha}{a^2+x^2}+\frac{\beta}{b^2+x^2}+\frac{\gamma}{c^2+x^2}
(a2+x2)(b2+x2)(c2+x2)1=a2+x2α+b2+x2β+c2+x2γ
=
α
b
2
c
2
+
β
a
2
c
2
+
γ
a
2
b
2
+
x
2
(
α
(
b
2
+
c
2
)
+
β
(
a
2
+
c
2
)
+
γ
(
a
2
+
b
2
)
)
+
x
4
(
α
+
β
+
γ
)
(
a
2
+
x
2
)
(
b
2
+
x
2
)
(
c
2
+
x
2
)
=\frac{\alpha b^2c^2+\beta a^2c^2+\gamma a^2b^2+x^2(\alpha(b^2+c^2)+\beta(a^2+c^2)+\gamma (a^2+b^2))+x^4(\alpha+\beta+\gamma)}{(a^2+x^2)(b^2+x^2)(c^2+x^2)}
=(a2+x2)(b2+x2)(c2+x2)αb2c2+βa2c2+γa2b2+x2(α(b2+c2)+β(a2+c2)+γ(a2+b2))+x4(α+β+γ)
同样的同分然后列出方程,有
{
α
+
β
+
γ
=
0
α
(
b
2
+
c
2
)
+
β
(
a
2
+
c
2
)
+
γ
(
a
2
+
b
2
)
=
0
α
b
2
c
2
+
β
a
2
c
2
+
γ
a
2
b
2
=
1
\left\{\begin{matrix} \alpha +\beta+\gamma=0\\ \alpha(b^2+c^2)+\beta(a^2+c^2)+\gamma (a^2+b^2)=0\\ \alpha b^2c^2+\beta a^2c^2+\gamma a^2b^2=1 \end{matrix}\right.
⎩⎨⎧α+β+γ=0α(b2+c2)+β(a2+c2)+γ(a2+b2)=0αb2c2+βa2c2+γa2b2=1
这个方程直接解起来有点麻烦我们用增广矩阵求解,有
[
1
1
1
0
b
2
+
c
2
a
2
+
c
2
a
2
+
b
2
0
b
2
c
2
a
2
c
2
a
2
b
2
1
]
\begin{bmatrix} 1&1 &1 &0 \\ b^2+c^2&a^2+c^2 & a^2+b^2 &0 \\ b^2c^2&a^2c^2 &a^2b^2 &1 \end{bmatrix}
⎣⎡1b2+c2b2c21a2+c2a2c21a2+b2a2b2001⎦⎤
第二行剪第一行乘
b
2
+
c
2
b^2+c^2
b2+c2,第三行减去第一行乘
b
2
c
2
b^2c^2
b2c2,然后第三行再减去第二行乘以
c
2
c^2
c2然后可以得到
[
1
1
1
0
0
a
2
−
b
2
a
2
−
c
2
0
0
0
(
b
2
−
c
2
)
(
a
2
−
c
2
)
1
]
\begin{bmatrix} 1&1 &1 &0 \\ 0&a^2-b^2 & a^2-c^2 &0 \\ 0&0 &(b^2-c^2)(a^2-c^2) &1 \end{bmatrix}
⎣⎡1001a2−b201a2−c2(b2−c2)(a2−c2)001⎦⎤
所以有解
{
α
=
1
(
b
2
−
a
2
)
(
c
2
−
a
2
)
β
=
1
(
a
2
−
b
2
)
(
c
2
−
b
2
)
γ
=
1
(
b
2
−
c
2
)
(
a
2
−
c
2
)
)
\left\{\begin{matrix} \alpha =\frac{1}{(b^2-a^2)(c^2-a^2)}\\ \\ \beta=\frac{1}{(a^2-b^2)(c^2-b^2)}\\ \\ \gamma=\frac{1}{(b^2-c^2)(a^2-c^2))} \end{matrix}\right.
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧α=(b2−a2)(c2−a2)1β=(a2−b2)(c2−b2)1γ=(b2−c2)(a2−c2))1
那么原式就可以表示为
1
π
∫
0
∞
1
(
a
2
+
x
2
)
(
b
2
+
x
2
)
(
c
2
+
x
2
)
)
d
x
\frac{1}{\pi}\int_0^\infty \frac{1}{(a^2+x^2)(b^2+x^2)(c^2+x^2))}dx
π1∫0∞(a2+x2)(b2+x2)(c2+x2))1dx
=
1
π
(
(
1
(
b
2
−
a
2
)
(
c
2
−
a
2
)
)
∫
0
∞
1
a
2
+
x
2
d
x
+
(
1
(
a
2
−
b
2
)
(
c
2
−
b
2
)
)
∫
0
∞
1
b
2
+
x
2
d
x
+
(
1
(
b
2
−
c
2
)
(
a
2
−
c
2
)
)
∫
0
∞
1
c
2
+
x
2
d
x
)
=\frac{1}{\pi}((\frac{1}{(b^2-a^2)(c^2-a^2)})\int_0^\infty \frac{1}{a^2+x^2}dx+(\frac{1}{(a^2-b^2)(c^2-b^2)})\int_0^\infty \frac{1}{b^2+x^2}dx+(\frac{1}{(b^2-c^2)(a^2-c^2)})\int_0^\infty \frac{1}{c^2+x^2}dx)
=π1(((b2−a2)(c2−a2)1)∫0∞a2+x21dx+((a2−b2)(c2−b2)1)∫0∞b2+x21dx+((b2−c2)(a2−c2)1)∫0∞c2+x21dx)
=
1
(
b
2
−
a
2
)
(
c
2
−
a
2
)
2
a
+
1
(
a
2
−
b
2
)
(
c
2
−
b
2
)
2
b
+
1
(
b
2
−
c
2
)
(
a
2
−
c
2
)
2
c
=\frac{1}{(b^2-a^2)(c^2-a^2)2a}+\frac{1}{(a^2-b^2)(c^2-b^2)2b}+\frac{1}{(b^2-c^2)(a^2-c^2)2c}
=(b2−a2)(c2−a2)2a1+(a2−b2)(c2−b2)2b1+(b2−c2)(a2−c2)2c1
这样规律就明显了,对比
n
=
2
n=2
n=2和
n
=
3
n=3
n=3,可以发现,也可以写写
n
=
4
n=4
n=4,可以得到
a
n
s
=
∑
i
=
1
n
1
2
a
i
∏
j
≠
i
1
a
j
2
−
a
i
2
ans=\sum_{i=1}^n\frac{1}{2a_i}\prod_{j\neq i}\frac{1}{a_j^2-a_i^2}
ans=i=1∑n2ai1j̸=i∏aj2−ai21
然后就可以
n
2
n^2
n2的做了
#include <bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
const int N=1e3+5;
long long quickmod(long long a,long long b)
{
long long ans=1;
while(b)
{
if(b%2==1)
ans=ans*a%mod;
a=a*a%mod;
b=b/2;
}
return ans;
}
long long a[N];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
scanf("%lld",&a[i]);
long long ans=0;
for(int i=0;i<n;i++)
{
long long temp=1;
for(int j=0;j<n;j++)
{
if(i==j)
continue;
temp=temp*((a[j]*a[j]%mod-a[i]*a[i]%mod+mod)%mod)%mod;
}
temp=temp*2%mod*a[i]%mod;
ans=(ans+quickmod(temp,mod-2))%mod;
}
printf("%lld\n",ans);
}
return 0;
}