vj-E题Ehab and Path-etic MEXs
题意:给定一棵树所有的边,对所有的边进行标号,询问任意两点Mex的最大值最小的的标号方案(输出任何一种)。
Mex(u,v)表示从u到v的简单路径中没有出现的最小标号。
思路:(借鉴大佬的)
如果树是一条链,那么任何标号方案对首尾两端的 都不会影响,直接输出
到
即可;
其余情况可以证明 最大值的最小值一定为
:
(1)无论如何安排,标 边和标
边一定存在公共路径联通;
(2)对于非链的树一定存在 ,
的安排方式使得存在边不在
,
的任何公共路径上。在该边上标
即可满足不存在
,
,
的公共路径。
有两种比较简洁的实现方式:
(1)找到三个度为 的点,选取这三个点的临边,标为
,
,
,其余任意;
(2)找到一个度大于等于 的点,选取它的三个临边。
#include<bits/stdc++.h>
const int maxn= 1e5+100;
using namespace std;
int a[maxn],b[maxn],num[maxn];
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<n;i++)
{
scanf("%d%d",&a[i],&b[i]);
num[a[i]]++;num[b[i]]++;
}
int op = 0;
for(int i=1;i<=n;i++) if(num[i]>=3) {op = i; break;}
if(!op) for(int i=0;i<n-1;i++) printf("%d\n",i);
else
{
for(int i=1,cnt1=0,cnt2=3;i<n;i++)
{
if((a[i]==op || b[i]==op) && cnt1<=2) printf("%d\n",cnt1++);
else printf("%d\n",cnt2++);
}
}
return 0;
}
vj-E题Ehab and Path-etic MEXs的更多相关文章
- 欧拉工程第67题:Maximum path sum II
By starting at the top of the triangle below and moving to adjacent numbers on the row below, the ma ...
- PAT甲题题解-1053. Path of Equal Weight (30)-dfs
由于最后输出的路径排序是降序输出,相当于dfs的时候应该先遍历w最大的子节点. 链式前向星的遍历是从最后add的子节点开始,最后添加的应该是w最大的子节点, 因此建树的时候先对child按w从小到大排 ...
- 刷题64. Minimum Path Sum
一.题目说明 题目64. Minimum Path Sum,给一个m*n矩阵,每个元素的值非负,计算从左上角到右下角的最小路径和.难度是Medium! 二.我的解答 乍一看,这个是计算最短路径的,迪杰 ...
- lintcode 中等题:Simplify Path 简化路径
题目 简化路径 给定一个文档(Unix-style)的完全路径,请进行路径简化. 样例 "/home/", => "/home" "/a/./b ...
- LeetCode算法题-Longest Univalue Path(Java实现)
这是悦乐书的第290次更新,第308篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第158题(顺位题号是687).给定二叉树,找到路径中每个节点具有相同值的最长路径的长度 ...
- 【LeetCode每天一题】Simplify Path(简化路径)
Given an absolute path for a file (Unix-style), simplify it. Or in other words, convert it to the ca ...
- 【LeetCode每天一题】Minimum Path Sum(最短路径和)
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...
- 动态规划小结 - 二维动态规划 - 时间复杂度 O(n*n)的棋盘型,题 [LeetCode] Minimum Path Sum,Unique Paths II,Edit Distance
引言 二维动态规划中最常见的是棋盘型二维动态规划. 即 func(i, j) 往往只和 func(i-1, j-1), func(i-1, j) 以及 func(i, j-1) 有关 这种情况下,时间 ...
- 第34-3题:LeetCode437. Path Sum III
题目 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数. 示例: root = [10,5,-3,3,2,null,11,3,-2,null,1], sum ...
随机推荐
- 读《深入理解java虚拟机》小结
之所以学习 jvm ,是因为在学习多线程相关知识时,对 volatile 关键字理解的不够透彻,总有种似懂非懂的感觉.于是通过在网上各种资料的查阅,最终将 volatile 和 jvm 联系上了,本身 ...
- DDL和客户端ip监控
DDL触发器监控脚本部署步骤 以下操作请使用sys用户: --第一步:创建表(此表主要保存ddl触发器产生的信息),可以根据不同的业务,使用相关的监控用户,在此监控用户为c##upctest 从可维护 ...
- Hadoop及Hbase部署
原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 环境准备 1.1 相关环境 1.2 网络环境 二 基础环境配置 2.1 配置相 ...
- VMware ESXi 7.0 U2 SLIC & Unlocker USB 网卡驱动集成镜像 202109更新
2021.08.31 更新:集成 "vmkusb-nic-fling"."net-community" 和 "nvme-community" ...
- Linux系统的ssh与sshd服务
当主机中开启openssh服务,那么就对外开放了远程连接的接口 ssh为openssh服务的客户端,sshd为openssh服务的服务端 远程管理工具ssh具有数据加密传输.网络开销小以及应用平台范围 ...
- tomcat配置启动不了
关于ideatomcat配置问题 1.第一步配置tomcat启动器 2.配置启动的网址 3.配置启动器的启动 ---更多java学习,请见本人小博客:https://zhangjzm.gitee.io ...
- 为开源项目 go-gin-api 增加后台任务模块
目录 任务管理界面 (WEB) 任务调度器 任务执行器 小结 推荐阅读 任务管理界面 (WEB) 支持在 WEB 界面 中对任务进行管理,例如:新增任务.编辑任务.启用/禁用任务.手动执行任务 等. ...
- Java基础(四)——抽象类和接口
一.抽象类 1.介绍 使用关键字 abstract 定义抽象类. abstract定义抽象方法,只有声明,不用实现. 包含抽象方法的类必须定义为抽象类. 抽象类中可以有普通方法,也可以有抽象方法. 抽 ...
- MySQL——MySQL安装
1.rpm yum安装:安装方便.速度快.无法定制 2.二进制安装:解压即可使用,不能定制功能 3.编译安装: 可定制.安装慢: MySQL5.5之前:./configure make make in ...
- Gitlab(2)- centos7.x 下安装社区版 Gitlab 以及它的配置管理
前置准备:虚拟机安装以及配置相关 包含安装 centos7.8 虚拟机.设置静态 ip 等 https://www.cnblogs.com/poloyy/category/1703784.html 注 ...