每次用一个点跟其他点连接,然后就出出现两个前面解决过的子问题,比如说:
F(6) = F(4)*F(0) + F(2)*F(2) + F(4)*F(0)
F(8) = F(6)*F(0) + F(4)*F(2) + F(2)*F(4) + F(0)*F(6)

import sys


def main():
    n = int(sys.stdin.readline().strip())
    a = [0 for i in range(1000+2)]
    a[0] = 1
    a[2] = 1
    a[4] = 2
    if n == 2 or n == 4:
        return a[n]
    for i in range(6, n+1):
        if i % 2 != 0:
            continue
        res = 0
        total = i - 2
        temp = i - 2
        while temp >= 0:
            l = temp
            r = total - l
            res = (res + ((a[l]%1000000007)* (a[r]%1000000007))%1000000007)%1000000007
            temp -= 2
        a[i] = res
    return a[n]

print(main())