{"author_url":"https://blog.hatena.ne.jp/a_kawashiro/","provider_url":"https://hatena.blog","url":"https://a-kawashiro.hatenablog.com/entry/20110424/1303639848","author_name":"a_kawashiro","height":"190","image_url":null,"blog_url":"https://a-kawashiro.hatenablog.com/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fa-kawashiro.hatenablog.com%2Fentry%2F20110424%2F1303639848\" title=\"SRM319 div1 medium - a_kawashiro\u306e\u30d6\u30ed\u30b0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","width":"100%","blog_title":"a_kawashiro\u306e\u30d6\u30ed\u30b0","title":"SRM319 div1 medium","type":"rich","description":"ACRush\u3055\u3059\u304c\u3002 #include <set> #include <vector> typedef long long LL; using namespace std; class ConstructBST { public: int n; LL ans; LL C[30][30]; set<int> se; int rec(int pos) { if(se.find(pos)==se.end()) return 0; else { int left=rec(pos*2); int right=rec(pos*2+1); ans*=C[left][right]; return left+1\u2026","version":"1.0","published":"2011-04-24 19:10:48","provider_name":"Hatena Blog","categories":["topcoder"]}