摘要:
题目:问n个节点构成完全对称的树有多少种方法。因为树是完全对称的,所以它的子树也是完全对称的。对于每个树,拿出一个根节点,枚举剩下的节点能拆分成多少个子树。#include #include #include #include #define LL long long intusing namespace std;const int MAXN = 1010;const LL MOD = 1e9 + 7;LL dp[MAXN];int main(){ dp[1] = 1; for ( int i = 2; i <= 1000; ++i ) { int v = i ... 阅读全文
posted @ 2013-10-09 22:04
冰鸮
阅读(224)
评论(0)
推荐(0)
摘要:
没什么巧办法,直接搜就行。用余数作为每个节点的哈希值。#include #include #include const int MAXN = 10100;struct node{ int mod; int fa; int digit; node() {} node( int mod, int fa, int dig ):mod(mod), fa(fa), digit(dig) { }};int N;bool ok[12];bool vis[MAXN];node Q[MAXN << 2];void findFa( int u ){ if ( u == -1 )... 阅读全文
posted @ 2013-10-09 21:15
冰鸮
阅读(210)
评论(0)
推荐(0)
摘要:
求覆盖三次及其以上的长方体体积并。这题跟http://wenku.baidu.com/view/d6f309eb81c758f5f61f6722.html 这里讲的长方体体积并并不一样。因为本题Z坐标范围非常小,所以可以离散化Z坐标,枚举每个体积块。对每一个体积块:用底面积*高求其体积。底面积直接用“线段树求长方形面积并”来得到即可。对于覆盖次数,pushUp的时候:1.满足 当前覆盖次数大于等于3的,直接求线段长。2.小于3的,由 左右儿子覆盖次数=3 - 当前覆盖次数 的两个儿子更新上来得到。#include #include #include #include using namespa 阅读全文
posted @ 2013-10-09 18:33
冰鸮
阅读(280)
评论(0)
推荐(0)

浙公网安备 33010602011771号