Description
现在有一个n次多项式F,
我们把将i代入时这个多项式的值记为F(i)
F(i)=ii+1其中i=0,1,2,...,n
现在试问对于F(n+1)是否唯一确定。
若确定,输出F(n+1)(如果为整数,直接输出;如果是分数(p/q) p与q互质,则输出p*q(%1e9+7);否则输出至小数点后6位)
否则输出No
n<=10^15
Solution
找规律题,
手解几个方程,即可发现:
1. n为奇数:F(n+1)=1
2. n为偶数:F(n+1)=n/2n/2+1
正版统题解:
(k+1)F(k)−k=0(k=0,1,...,n),
因而n+1次多项式G(x)=(x+1)F(x)−x...①
有n+1个根x=0,1,2,…,n.于是G(x)=ax(x−1)(x−2)...(x−n)...②
其中a为待定系数,在①②中令x=-1,得
1=a[(−1)(n+1)](n+1)!,
即 a=[(−1)(n+1)]/(n+1)!.
从而知道多项式函数为
F(x)=1/(x+1)∗[(−1)(n+1)]/(n+1)!∗x(x−1)(x−2)...(x−n)+x.
由此得 F(n+1)=[(−1)(n+1)+(n+1)]/(n+2)=1(n为奇数)
F(n+1)=n/(n+2)(n为偶数).
Code
#include <cstdio>
long long n,mo=1e9+7;
int main()
{
scanf("%lld",&n);
if(n%2)printf("1");
else printf("%lld",n/2%mo*((n/2+1)%mo)%mo);
}