美文网首页
1519. 子树中标签相同的节点数

1519. 子树中标签相同的节点数

作者: 来到了没有知识的荒原 | 来源:发表于2020-07-28 23:13 被阅读0次

1519. 子树中标签相同的节点数

树形dp

class Solution {
public:
    vector<vector<int>>f;
    vector<vector<int>>g;
    string w;

    vector<int> countSubTrees(int n, vector<vector<int>>& edges, string labels) {
        f=vector<vector<int>>(n,vector<int>(26));
        g=vector<vector<int>>(n,vector<int>());
        w=labels;

        for(auto e:edges){
            int a=e[0],b=e[1];
            g[a].push_back(b),g[b].push_back(a);
        }
        
        dfs(0,-1);
        vector<int> res(n);
        for(int i=0;i<res.size();i++)res[i]=f[i][w[i]-'a'];

        return res;
    }

    void dfs(int u,int fa){
        f[u][w[u]-'a']=1;

        for(auto son:g[u]){
            if(son==fa)continue;
            dfs(son,u);
            for(int j=0;j<26;j++)
                f[u][j]+=f[son][j];
        }
    }
};

相关文章

  • 1519. 子树中标签相同的节点数

    1519. 子树中标签相同的节点数 树形dp

  • 力扣 1519——子树中标签相同的节点数

    本题主要在于对树这种数据结构的考察,以及深度优先遍历的使用,优化时可以采取空间换时间的策略。 原题 给你一棵树(即...

  • 利用链表实现二叉树

    节点 成员变量:左子树、右子树、key、value 二叉树 成员变量:根节点、节点数量方法:插入、删除、获取某个节...

  • 二叉树

    计算一颗二叉树中的叶子节点数 一棵树的叶子节点数目等于他的左子树叶子数加上右子树叶子数之和;而当一个节点没有左子树...

  • 二叉查找树(二)

    05选择操作 排名select:找出排名为k的键 左子树中的结点数t大于k,那么我们就继续(递归地)在左子树中查找...

  • 另一个树的子树

    标签:树 dfs 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一...

  • Lucene

    数值索引IntPoint 对数值进行从小到大排序,从排序后的点数据中取前一半的点数据划为左子树(节点2),剩余的划...

  • 二叉数遍历

    BiTreeBiTree->data; //节点数据BiTree->lchild; // 左子树BiTree->r...

  • 【Android】定义浮点型资源

    res/values下的中,支持两种方式指定浮点数资源: 标签 资...

  • 8.平衡二叉搜索树

    Balanced Binary Search Tree : BBST 当节点数量固定时,左右子树的高度越接近,那么...

网友评论

      本文标题:1519. 子树中标签相同的节点数

      本文链接:https://www.haomeiwen.com/subject/jmkcrktx.html