CF神奇构造题

题目大意

给出一颗 NNN 个节点树,每条边有边权,边权为 000 到 N−2N-2N−2 的整数,且不重复,使得任意两点的简单路径的MEX的最大值最小.(MEX指第一个没有出现过的非负整数)

分析

对于MEX最重要自然是 000,而且因为是树,所以必然可以做到将 000 和 111 放入同一条树链中,那么就要考虑 222 的位置了,不可以让他出现在这条树链中,理解一下就是必须有一个点的度至少为 333,即这个图不是一条链,那么就有一种非常容易的方法,将 0,1,20,1,20,1,2 放在三个度为 111 的点的边上,这样就不可能出现 0,1,20,1,20,1,2 同时出现在一条链上,其他也就可以乱放了,如果是一条链无论怎么放MEX都可以达到 N−1N-1N−1,所以可以直接乱放.

代码

#include<bits/stdc++.h>
#define REP(i,first,last) for(int i=first;i<=last;++i)
#define DOW(i,first,last) for(int i=first;i>=last;--i)
using namespace std;
const int MAXN=114514;
int N,M;
int T;
int out[MAXN];//记录度
int p[MAXN];//比较懒,不想存图,所以就只记录一下每个点最后一条出边,反正最后有影响的之后度为1的点,所以没关系
int answer[MAXN];//记录答案
void work()
{scanf("%d",&N);int f,t;REP(i,1,N-1){scanf("%d%d",&f,&t);out[f]++;out[t]++;p[f]=p[t]=i;}if(N==2)//注意特判2{printf("%d",0);return;}int cnt=0;REP(i,1,N){if(out[i]==1)//在前三个度为1的点的出边赋值上0,1,2,为了方便处理这里就用了1,2,3{answer[p[i]]=++cnt;if(cnt==3){break;}}}REP(i,1,N-1)//输出{if(answer[i])//如果有答案就输出答案{printf("%d\n",answer[i]-1);}else//没有反正可以乱输出{++cnt;printf("%d\n",cnt-1);}}
}
int main()
{work();return 0;
}

CF1325C Ehab and Path-etic MEXs相关推荐

  1. CF628 C.C. Ehab and Path-etic MEXs(思维+拓扑排序)

    CF628 C.C. Ehab and Path-etic MEXs(思维+拓扑排序) 题目链接 题意:没咋看懂,它的题解是度数最高的分配后其他的随便分配. 我做的是,从子节点往上面,依次加,拓扑排序 ...

  2. 【字源大挪移—读书笔记】 第一部分:字首

    [1] 字首:[1.1]表示[否定]的字首.[1.2]表示[方位]的字首.[1.3]表示[程度]的字首.[1.4]表示[状态.现象]的字首.[1.5]表示[数字]的字首 [1.1] 表示[否定]的字首 ...

  3. Codeforces round #628 C.Ehab and Path-etic MEXs

    Codeforces round #628 C.Ehab and Path-etic MEXs You are given a tree consisting of n nodes. You want ...

  4. [Codeforces Round #628]1325C - Ehab and Path-etic MEXs[思维][图]

    1325C - Ehab and Path-etic MEXs[思维][图] time limit per test memory limit per test input output 1 seco ...

  5. Codeforces Round #649 (Div. 2)C. Ehab and Prefix MEXs[排列的构造]

    C. Ehab and Prefix MEXs 题目大意: 解题思路:题目说保证a数组是非递减的,那么如果某位置a[i]!=a[i−1]a[i]!=a[i-1]a[i]!=a[i−1]那么这个位置ii ...

  6. Codeforces Round #628 (Div. 2)C - Ehab and Path-etic MEXs

    C - Ehab and Path-etic MEXs 题目链接 简要描述: 从一个点到另一个点出发,所经过的边组成一个集合, 这些集合中所不包含的最小自然数为mex(u,v),要求使所有的mex(u ...

  7. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs

    C. Ehab and Path-etic MEXs 题目链接-C. Ehab and Path-etic MEXs Note The tree from the second sample: 题目大 ...

  8. [codeforces 1325C] Ehab and Path-etic MEXs 绕不开的叶节点+特判

    Codeforces Round #628 (Div. 2)   比赛人数9400 [codeforces 1325C]  Ehab and Path-etic MEXs   绕不开的叶节点+特判 总 ...

  9. Ehab and Path-etic MEXs CodeForces - 1325C(思维+贪心)

    You are given a tree consisting of n nodes. You want to write some labels on the tree's edges such t ...

最新文章

  1. 网络工程与机房等精华指引贴
  2. JAVA基础代码分享--模拟人机猜拳系统
  3. 从上百幅架构图中学大型网站建设经验(上)
  4. 猎豹产品经理:「全球化产品」应该要避开的几个坑
  5. python局部静态变量_全局变量、局部变量和静态变量
  6. Eclipse使用TODO标签管理任务及自定义TODO标签
  7. wpf 依赖强制回调
  8. 使用MesaSQLite入库CSV文件
  9. python全栈构图_Python全栈-magedu-2018-笔记5
  10. python基础系列教程——Python3.x标准模块库目录
  11. [置顶] Android之Handler用法总结
  12. 无法获取有关 Windows NT 组/用户 'WIN-*******\********' 的信息,错误代码 0x534。 [SQLSTATE 42000] (错误 15404))....
  13. HDFS存储大量小文件的问题及解决方案
  14. 极简fseek()函数讲解,一分钟掌握
  15. 新浪云HTML播放音乐,音乐播放器-html代码
  16. 伦敦大学计算机研究生雅思要求,【留学科普】伦敦TOP10大学雅思要求来了!你够得上吗?...
  17. 【转】我是一个INFP者
  18. Android开发之仿360手机卫士悬浮窗效果
  19. [图论]---[网络流]---最小点割数/最小点割集
  20. SQL Server数据库创建数据库、用户、表和插入数据(Transact-SQL)

热门文章

  1. n-queens(n皇后问题)
  2. 2020、2021、2022数控机床数据采集方案汇总
  3. 反向链接的类型(转)
  4. 音视频学习之-YUV裸数据
  5. ATM异地跨行取钱收费大比拼
  6. 一年白干!程序员赵某仿制老东家APP,获取服务器数据,被判4年6个月
  7. 小程序---365笔记第11天---微信小程序登录接入
  8. 问句识别:基于Xgboost的中文疑问句判断模型
  9. 论文重复率超过多少不能发表?
  10. 人脑脊液的代谢组学研究—标识恶性神经胶质瘤的特征