栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

codeforce C. Ehab and Path-etic MEXs

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

codeforce C. Ehab and Path-etic MEXs

题目大意:有一颗n个结点的树 ,现在让你分配每条边的权重,使得任意两个点之间的所有边的MEX值尽可能的小。

题解:寻找两个隶属于同一父亲的叶子节点,将两条边分别赋值为0和1,那么所有路径上的MEX值最大为1。显然由于0的存在,MEX不可能为0,所以1就是最小值。

 

#include
using namespace std;
const int maxn = 2e5 + 10;
vectorg[maxn];
struct node {
	int u, v;
}e[maxn];
int main()
{
	int n, k;
	cin >> n;
	int x, y;
	for (int i = 1; i <= n - 1; i++)
	{
		cin >> x >> y;
		g[x].push_back(y);
		g[y].push_back(x);
		e[i].u = x;
		e[i].v = y;
	}
	int mx = n - 2, mi = 0;
	for (int i = 1; i < n; i++)
	{
		if (g[e[i].u].size() == 1 || g[e[i].v].size() == 1)
		{
			cout << mi++ << endl;
		}
		else cout << mx-- << endl;
	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号