9282:B君的多边形
-
总时间限制:
- 20000ms 单个测试点时间限制:
- 1000ms 内存限制:
- 131072kB
-
描述
-
有一个正n多边形,我们要连接一些对角线,把这个多边形分成若干
个区域。要求连接的对角线不能相交,每个点可以连出也可以不连出对角
线。(即最终不要求所有区域均为三角形)
问总方案数mod (10^9+7)的结果。
输入
-
一行一个整数n
输出
-
一行一个整数表示答案。
样例输入
-
5
样例输出
-
11
提示
-
对于所有的的数据,满足n≤10^6
-
解析:没什么好说的,就是采用跟多边形与三角形的关系得出
-
题解:
#include<stdio.h> long long inv[1000007]; long long f[1000007]; int main() { int mod=1e9+7; inv[0]=1,inv[1]=1; f[0]=1,f[1]=1; int x; scanf("%d",&x); for(int i=2;i<=x;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod; for(int i=2;i<x;i++) f[i]=((6*i-3)*f[i-1]%mod-(i-2)*f[i-2]%mod+mod)%mod*inv[i+1]%mod; printf("%d",f[x-2]); }