zoukankan      html  css  js  c++  java
  • A1053 Path of Equal Weight (30 分)

    题目大概是打印符合条件的,从根 -> 叶子的路径的权值

    我的思路大概是:DFS() 从根遍历到叶子,同时记录权值

    1、因为要遍历同时记录权值,所以当前结点需要有变量能记录权值(从根到当前结点的累加权值),所以结构体看起来像这样:

    struct node_t {
        int weight;
        int total_weight;//记录遍历到当前这个结点时累加的权值
        vector<int> child;//对于一般树由于不知道孩子有多少,所以用 vector 比较节约空间
    };

    2、思路的伪码大致长这样:

    /* 伪码 */
    
    //1. 输入
    //保存树结构
    
    //2. 主逻辑
    dfs();

    //3. 输出

    对于第一部分输入——保存树结构,将树组织成二维数组较合适;

    对于第二部分 dfs() 套晴神的模板,具体地方自己改改就行,最后看起来像这样:

    /* 伪码 */
    
    void dfs(树的结点 t, 上一层累加的权值 w) {
        node_t *cur = t;
        
        //尝试当前结点
        temp.push_back(cur);
        cur->total_weight = w + cur->weight;
        if (cur->total_weight == s) {
            输出 temp;
        }
    
        //遍历当前结点的孩子(如果有的话)
        for (i 从 0 至 cur.size())    dfs(&cur->child[i], cur->total_weight);
        temp.pop_back();
    }

    上面 "尝试当前结点" 是通过临时数组实现的,也就是每枚举一个元素,我先加到数组里,如果不满足条件再从数组中移出去

    第三部分输出略

    点击获取完整代码

     
  • 相关阅读:
    数据库中Schema(模式)概念的理解
    debug --- 使用Eclipse
    pgsql 相关函数
    浏览器显示页面排版错误
    jqury 属性
    节点互换需要克隆
    mysql数据库允许远程访问
    request与response的编码和解码
    文本和属性 radio,checkbox,select
    js 和 JQuery 获取iframe的父子值
  • 原文地址:https://www.cnblogs.com/bEngi1/p/14423180.html
Copyright © 2011-2022 走看看