当前位置: 首页 > wzjs >正文

网站404页面模板整合营销公司排名

网站404页面模板,整合营销公司排名,山东建设和城乡建设厅注册中心网站首页,58同城类似的网站怎么做思路: 基于树形 DP 的两次遍历(第一次dfs计算以某个初始根(这里选了 1)为根时各子树的深度和与节点数,第二次zy进行换根操作,更新每个节点作为根时的深度和) 换根原理: 更换主根&…

思路:

基于树形 DP 的两次遍历(第一次dfs计算以某个初始根(这里选了 1)为根时各子树的深度和与节点数,第二次zy进行换根操作,更新每个节点作为根时的深度和)

换根原理:

更换主根,只需要对父节点进行运算即可,没必要再次循环;后面代码有详解:

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+5;
long long n,d[N],p[N],o[N];//deep数组存储以每个节点为根时的总深度和,point数组存储子树大小
vector<vector<int>> a; // 邻接表存储树结构

// 第一次DFS:计算以节点1为根时,每个节点的子树大小和子树总深度
void dfs(int x,int pr){
    p[x]=1; // 初始化当前节点的子树大小为1(仅包含自身)
    d[x]=0; // 初始化当前节点的子树总深度为0
    
    // 遍历当前节点的所有邻接节点
    for(auto i:a[x]){
        if(i!=pr){ // 避免处理父节点(防止重复计算)
            dfs(i,x); // 递归处理子节点
            
            // 更新当前节点的子树总深度:
            // d[i]是子节点i的子树总深度,p[i]是子节点i的子树大小
            // 每个子节点i的子树中的所有节点到当前节点的距离都要+1,因此增加p[i]
            d[x]+=d[i]+p[i];
            
            // 更新当前节点的子树大小:加上子节点i的子树大小
            p[x]+=p[i];
        }
    }    
}

// 第二次DFS:换根DP,计算以每个节点为根时的总深度和
void zy(int x,int pr){
    // 遍历当前节点的所有邻接节点
    for(auto i:a[x]){
        if(i!=pr){ // 避免处理父节点
            // 核心换根公式:
            // d[x]是以x为根的总深度和
            // n-p[i]是除了i的子树外的节点数
            // p[i]是i的子树大小
            // 当根从x变为i时,i的子树中所有节点的深度减少1(距离根更近了)
            // 其余节点的深度增加1(距离根更远了)
            d[i]=d[x]+n-p[i]-p[i];
            
            // 递归处理子节点,继续换根过程
            zy(i,x);
        }
    }
}

int main(){
    cin>>n; // 输入节点数
    a.resize(n + 1); // 调整邻接表大小
    
    // 输入n-1条边,构建树
    int m,l; 
    for(int i=1;i<n;i++){
        cin>>m>>l;
        a[m].push_back(l);
        a[l].push_back(m);
    }
    
    // 第一次DFS:以节点1为根,计算初始子树信息
    dfs(1,0);
    // 第二次DFS:换根DP,计算每个节点作为根时的总深度和
    zy(1,0);
    
    // 寻找总深度和最大的节点
    int mi=n;
    for(int i=n-1;i>0;i--){
        if(d[i]>=d[mi])mi=i;
    }
    
    // 输出结果
    cout<<mi<<endl;
    
    return 0;
}

http://www.dtcms.com/wzjs/297461.html

相关文章:

  • wordpress和hexo百度移动seo首选帝搜软件
  • 网站设计的原则不包括网络工程师是干什么的
  • wordpress怎么建立网站吗seo产品优化推广
  • 房地产交易网站免费顶级域名注册
  • 静态网站如何做优化seo关键词布局案例
  • 网站建设 广州网站建设专业公司百度站长工具官网
  • 郑州郑州网站建设河南做网站公司外链推广是什么意思
  • 东莞哪些网络公司做网站比较好电商网站seo优化
  • av做爰免费网站附子seo
  • h5直播网站电商运营公司排名
  • 建设银行上海分行社会招聘网站站长之家综合查询工具
  • 刷q币网站建设亚马逊跨境电商
  • 手机app微信网站建设网站建设流程是什么
  • 做公司的网站有哪些东西网页推广链接怎么做
  • 广药网站建设试卷网络兼职平台
  • 石家庄 网站建设 15369356722网站视频
  • 网站制作多少钱400网页设计制作网站
  • 新网互联 网站上传西安百度竞价托管公司
  • 为赌博网站做推广西安seo顾问培训
  • 做外贸网站哪家的好网站买卖
  • 做的网站太大怎么办中国搜索引擎排名2021
  • 怎么获取网站的图片最新网站查询
  • 罗湖做网站哪家好互联网营销的优势
  • 云南新冠疫情最新动态厦门关键词优化seo
  • 东莞做网站卓诚对seo的理解
  • wordpress的标题字体大小站长工具seo综合查询工具
  • 企业汽车网站建设北京网站seo招聘
  • 海南住房和城乡建设网站关键词优化推广公司排名
  • 网站备案服务内容深圳电子网络推广查询
  • 店名logo在线制作免费企业网站seo公司