关注
#include <bits/stdc++.h>
#include <stdio.h>
#define N 100005
using namespace std;
struct edge
{
int from;
int to;
edge(int i=0,int j=0)
{
from = i;to = j;
}
};
vector<edge>mp;
int visit[N];
int num[N];
int depth = 1;
int maxdepth = 1;
int cmp(edge l,edge r)
{
return l.from < r.from;
}
void dfs(int from)
{
edge tmp(from,0);
depth++;
maxdepth = max(maxdepth,depth);
auto pos = lower_bound(mp.begin(),mp.end(),tmp,cmp);
for(auto it=pos;it!=mp.end();it++)
{
if(it->from == from && !visit[it->to])
{
//printf("%d to %d\n",it->from,it->to);
visit[it->to] = 1;
num[depth] ++;
dfs(it->to);
}
if(it->from != from)
break;
}
depth--;
}
int main()
{
int n;
int ans = 0;
cin>>n;
for(int i=0;i<n-1;i++)
{
int a,b;
cin>>a>>b;
edge tmp(a,b);
mp.push_back(tmp);
}
sort(mp.begin(),mp.end(),cmp);
visit[1] = 1;
dfs(1);
for(int i=2;num[i];i++)
{
ans += (num[i] - 1) * 2 + 1;
//printf("num[%d] = %d\n",i,num[i]);
}
cout<<ans<<endl;
return 0;
}
第一题,dfs记录树的深度的数量存在num数组
ans += (num[i] - 1) * 2 + 1;
查看原帖
点赞 5
相关推荐
牛客热帖
更多
正在热议
更多
# 简历上如何体现你的“AI”能力? #
13931次浏览 313人参与
# 选择和努力,哪个更重要? #
207092次浏览 1551人参与
# 华泰星战营,提前锁定校招offer #
13060次浏览 387人参与
# 哪些AI项目值得做? #
24227次浏览 595人参与
# vivo求职进展汇总 #
294861次浏览 1610人参与
# 找不到大厂实习可以去小厂吗? #
19305次浏览 220人参与
# 找AI工作应该卷什么? #
51775次浏览 280人参与
# 你总挂在第__面? #
10026次浏览 112人参与
# 一人推荐一个值得去的通信/硬件公司 #
262082次浏览 2156人参与
# 实习时最怕听到的一句话 #
21653次浏览 190人参与
# 非技术岗是怎么找实习的 #
333169次浏览 2654人参与
# 没有面试的日子里,你在做什么 #
12526次浏览 351人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
200025次浏览 1185人参与
# 你的秋招第一场笔试是哪家 #
330017次浏览 2184人参与
# 秋招笔试记录 #
399448次浏览 2220人参与
# 通信和硬件还有转码的必要吗 #
105505次浏览 642人参与
# 硬件开发岗知多少 #
28048次浏览 154人参与
# AI Coding的使用心得 #
36084次浏览 243人参与
# 你简历上最心虚的一句话 #
20012次浏览 227人参与
# 你知道最慷慨和最抠的公司分别是 #
10091次浏览 83人参与
# HR问:你期望的薪资是多少?如何回答 #
97803次浏览 826人参与
