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);
}