51nod 1412 AVL树的种类
非常简单的一道题,一眼题
枚举左儿子大小,再枚举深度即可
复杂度$O(n^2 log n)$
#include <cstdio> #include <cstring> #include <iostream> using namespace std; #define ri register int #define sid 2005 #define mod 1000000007 int n, ans; int f[sid][20]; inline void inc(int &a, int b) { a += b; if(a >= mod) a -= mod; } int main() { cin >> n; f[0][0] = f[1][1] = 1; for(ri i = 2; i <= n; i ++) for(ri d = 2; d <= 19; d ++) for(ri L = 0; L < i; L ++) { int R = i - L - 1; inc(f[i][d], 1ll * f[L][d - 1] * f[R][d - 1] % mod); inc(f[i][d], 1ll * f[L][d - 1] * f[R][d - 2] % mod); inc(f[i][d], 1ll * f[L][d - 2] * f[R][d - 1] % mod); } for(ri i = 1; i <= 19; i ++) inc(ans, f[n][i]); printf("%d\n", ans); return 0; }
喵喵喵?喵喵喵! 喵喵喵......