打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
D. Edge Weight Assignment(贪心、叶子节点深度计算、兄弟叶子节点计数)

题意: 给你一张无根图,你需要给这张图上所有边加上一个正权值,但是必须要满足任意一对叶子节点的路径上边权值的异或为0,问你最少和最多需要加几种权值。

思路:

最少:如果两个叶子节点的距离是偶数,那么对于这条路我们只需要放一种数字,异或就是0,如果距离是奇数n,那么我们就要放三种数字,n-2个主要数字,剩下两个数字的异或为那个主要数字,这样异或的结果也为0,所以我们找一个不为叶子节点的点作为根,计算所有叶子节点的深度,如果所有深度的奇偶性相同,最少的就是1,否则是3。

最多:最多的情况,我们显然可以为每一条边加上一个不同的权值,这样就是最多的,但是如果两个叶子节点的父节点相同,他们的距离为2,那这两个边权必须相同,若干个叶子节点的父节点相同,同理。所以我们在找到叶子节点的时候只需要用数组他的父节点编号进行计数,代表这个节点有多少个叶子节点的子节点,最后统计答案即可。

#include<bits/stdc++.h>

#define endl '\n'

#define null NULL

#define fi first

#define se second

#define mp make_pair

#define pb push_back

#define ll long long

#define int long long

#define vi vector<int>

#define mii map<int,int>

#define pii pair<int,int>

#define ull unsigned long long

#define pqi priority_queue<int>

#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define ct cerr<<"Time elapsed:"<<1.0*clock()/CLOCKS_PER_SEC<<"s.\n";

using namespace std;

const int N=2e5+5;

const int inf=0x7fffffff;

const int mod=1e9+7;

const double eps=1e-6;

int head[N],nxt[N],to[N],tot=0;

void add(int u,int v)

{

nxt[++tot]=head[u];

to[tot]=https://www.xiaoyuani.com/;

head[u]=tot;

}

int du[N],deep[N];int fg1=0,fg2=0;int tmp[N];

void dfs(int x,int y)

{

if(x!=y)

deep[x]=deep[y]+1;

if(du[x]==1)

{

if(deep[x]&1)

fg1=1;

else

fg2=1;

tmp[y]++;

return ;

}

for(int i=head[x];i;i=nxt[i])

{

if(to[i]!=https://www.xiaoyuani.com/)

{

dfs(to[i],x);

}

}

}

signed main()

{

IOS;

int n;

cin>>n;

for(int i=1;i<=n-1;i++)

{

int u,v;

cin>>u>>v;

add(u,v);add(v,u);

du[u]++;du[v]++;

}

int root;

for(int i=1;i<=n;i++)

{

if(du[i]!=1)

{

root=i;

break;

}

}

dfs(root,root);

if(fg1+fg2==1)

cout<<1<<' ';

else

cout<<3<<' ';

int near=0;

for(int i=1;i<=n;i++)

{

if(tmp[i]!=0)

{

near+=tmp[i]-1;

}

}

cout<<n-near-1<<endl;

}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
BP网络算法及其改进
次小生成树模板(以POJ 1679为例)
const的作用
BP神经网络
算法
Gone Fishing 贪心算法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服