Codeforces - 1325C - Ehab and Path-etic MEXs(思维、树)
时间:2020-03-24
本文章向大家介绍Codeforces - 1325C - Ehab and Path-etic MEXs(思维、树),主要包括Codeforces - 1325C - Ehab and Path-etic MEXs(思维、树)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接
题目大意:给你一棵树让你给每个结点编一个号,使得每一条从一个结点到另一个结点的路径中没有出现过的最小的数字最小。
1.如果一棵树是一条链的话,那么无论怎么编号,结果都是一样的。
2.如果一棵树不是一条链,那么必定存在一个结点的度数大于\(3\),那么通过这个结点的路径只能走所有与他相连的若干条边中的两条,那么我们将与这个结点相连其中\(3\)条边编号为0、1、2的话,那么经过
这个结点的路中没有出现过的最小的数一定小于等于\(2\)。而对于没有经过这个结点的路径来说,最小值就是\(0\)。
const int maxn = 1e5+10;
vector<P> g;
int cnt[maxn], n;
int main(void) {
scanf("%d", &n);
for (int i = 0, u, v; i<n-1; ++i) {
scanf("%d%d", &u, &v);
g.push_back(P(u, v));
++cnt[u], ++cnt[v];
}
int num = 0, root = -1;
for (int i = 1; i<=n; ++i)
if (cnt[i]>=3) {
root = i;
num = cnt[i];
break;
}
for (int i = 0, num2 = 0; i<n-1; ++i) {
if (g[i].first!=root && g[i].second!=root) printf("%d\n", num++);
else printf("%d\n", num2++);
}
return 0;
}
原文地址:https://www.cnblogs.com/shuitiangong/p/12558503.html
- 有趣的算法(三)——Hash算法
- JavaScript中的数据类型
- Logistic回归算法及Python实现
- <script>元素在XHTML中的用法
- 有趣的算法(四)——一致性Hash算法模拟redis集群
- ASP.NET5 中静态文件的各种使用方式服务端的静态文件开启目录浏览呈现默认文件使用UseFileServer方法文件类型基于IIS的考虑最佳实践
- 使用ASP.NET Identity以手机短信实现双重验证创建一个ASP.NET 5项目运行应用程序使用SMS短信进行双重验证开启双重验证使用双重验证登陆应用程序禁用账户来防止暴力破解
- ASP.NET 5 之 错误诊断和它的中间件们配置错误处理页面在Development阶段使用错误页面运行时信息页面欢迎页面
- 有趣的算法(五) ——Dijkstra双栈四则运算
- CSS深入理解学习笔记之float
- 轻松初探 Python 篇(五)—dict 和 set 知识汇总
- 全面解析C#中的异步编程为什么要异步过去糟糕的体验一个新的方式Tasks基于任务的异步编程模型Async和await时间处理程序和无返回值的异步方法结束语
- CSS深入理解学习笔记之absolute
- 5个经典的JavaScript面试题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现带进度条的WebView
- Android实现记住密码功能
- 【- Flutter Web篇 -】 FlutterUnit web版闪亮登场
- Android简单实现弹幕效果
- 实现 Base64 的编码解码
- Android实现底部导航栏的主界面
- Spring注解@Autowired源码分析
- 使用RecyclerView实现水平列表
- android实现记住用户名和密码以及自动登录
- Android碎片fragment实现静态加载的实例代码
- android异步消息机制 源码层面彻底解析(1)
- /undefinedcss/modules/layer/default/layer.css?v=3.1.1找不到的问题
- Android实现渐变启动页和带有指示器的引导页
- the input device is not a TTY. If you are using mintty, try prefixing the comma
- 【STM32F407】第13章 RL-TCPnet V7.X之创建多个TCP客户端