树形dp复杂度
  • 板块学术版
  • 楼主QAQqqqqqq
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/26 20:02
  • 上次更新2023/11/3 07:30:18
查看原帖
树形dp复杂度
507675
QAQqqqqqq楼主2023/7/26 20:02

下面是一个树形dp的大致代码,为什么复杂度是O(n2)O(n^2)呢?

void dfs1(int u, int fa) {
    f[u][0] = 1;
    for (int i = head[u]; i != -1; i = e[i].next) if (e[i].v != fa) {
        if (flag[e[i].v]) flag[u] = true;
        dfs1(e[i].v, u);
        for (int j = sz[u]; j >= 0; --j) {
            for (int k = 1; k <= sz[e[i].v]; k++) {
                (f[u][j + k] += 1LL * f[u][j] * f[e[i].v][k] % mod) %= mod;
            }
        }
        sz[u] += sz[e[i].v];
    }
}

代码就展示了一部分,大概意思就是这样子)

2023/7/26 20:02
加载中...