2019牛客暑期多校训练营(第一场)B Integration(裂项解方程+找规律)

链接: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} 01+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 π10i=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 π10a2+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 π10(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. α=b2a21β=a2b21
那么原式就可以表示为
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) π10(a2+x2)(b2+x2)1dx=π1((b2a21)0a2+x21dx+(a2b21)0b2+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} =(b2a21)2a1+(a2b21)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 π10(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} 1001a2b201a2c2(b2c2)(a2c2)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. α=(b2a2)(c2a2)1β=(a2b2)(c2b2)1γ=(b2c2)(a2c2))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 π10(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(((b2a2)(c2a2)1)0a2+x21dx+((a2b2)(c2b2)1)0b2+x21dx+((b2c2)(a2c2)1)0c2+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} =(b2a2)(c2a2)2a1+(a2b2)(c2b2)2b1+(b2c2)(a2c2)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=1n2ai1j̸=iaj2ai21
然后就可以 n 2 n^2 n2的做了

#include 
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

你可能感兴趣的:(数学,快速幂)