一个疑问
查看原帖
一个疑问
315205
Kniqht楼主2022/8/18 18:03

这题就是把一个森林看成一个树,然后从虚拟节点0开始进行树形dp,但是dfs(0)的时候,0没有和任何节点建边,那么怎么继续搜索呢???

就比如第一篇题解

void dp(int now)
{
//    f[now][0]=0;
    for(int i=head[now];i;i=e[i].pre)//这一块,初始的时候now=0,那么head[0]不应该=0吗?然后不就没法循环了吗
    {
        int go=e[i].to;
        dp(go);
        for(int j=m+1;j>=1;j--)
        {
            for(int k=0;k<j;k++)
            {
                f[now][j]=max(f[now][j],f[go][k]+f[now][j-k]);
            }
        }
    }
}
2022/8/18 18:03
加载中...