题目链接<https://vjudge.net/problem/SPOJ-TRNGL>
题意:
给一个n边的凸多边形,用n-3条不相交的线将图形分为n-2个三角形,问有多少种分法。
题解:
卡特兰数。
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL dp[1005];
int main(){
dp[2]=dp[3]=1;
for(LL i=4;i<=1000;i++){
for(LL j=2,k=i-1;j<i;j++,k--){
dp[i]=(dp[i]+dp[j]*dp[k])%100007;
}
}
LL n,x;
scanf("%lld",&n);
while(n--){
scanf("%lld",&x);
printf("%lld\n",dp[x]);
}
}