CF1375G Tree Modification
Description
- 传送门
Solution
- 做法:直接黑白染色,取颜色少的点数减一即为答案。
- 考虑当我们确定根之后,每一次选择的移动节点aaa如果往它的儿子连或它的兄弟连是不优的。因此我们每一次都是尽量往上面跳两个节点。
- 再考虑简单的一条链的时候,深度为奇数的点必须要往上面跳一次,深度为偶数的点跟着深度为奇数的点往上跳,从下往上做。如果操作一个深度为偶数的节点,会使得深度为偶数的节点增多,而最后到了根节点下面的时候深度为偶数的节点是要一个一个操作的,所以不优。可以证明的是即使中间选择了奇数节点,不如一开始就选择奇数节点好。
- 因此直接选择根节点,深度为奇数的点全部操作一次,就刚好能够到达下界了。
**#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define maxn 200005
using namespace std;int n,i,j,k,ans,sum;
int em,e[maxn*2],nx[maxn*2],ls[maxn];void insert(int x,int y){em++; e[em]=y; nx[em]=ls[x]; ls[x]=em;em++; e[em]=x; nx[em]=ls[y]; ls[y]=em;
}void dfs(int x,int p,int d){sum+=d&1^1;for(int i=ls[x];i;i=nx[i]) if (e[i]!=p)dfs(e[i],x,d+1);
}int main(){freopen("ceshi.in","r",stdin);scanf("%d",&n);for(i=1;i<n;i++) scanf("%d%d",&j,&k),insert(j,k);dfs(1,0,0);ans=min(sum,n-sum)-1;printf("%d\n",ans);
}
CF1375G Tree Modification相关推荐
- CF1375G. Tree Modification(贪心,黑白染色)
CF1375G. Tree Modification Solution 假设我们取定了根,那么只可能从深度大的点接到深度小的点,我们每次取一个高度为2的子树接到该子树的父亲,这样取一定不劣,操作次数相 ...
- codeforces1375G Tree Modification
https://codeforces.com/problemset/problem/1375/G 感觉这题是D题难度啊.... 观察给出的图发现,对于(很多d)-a-b-c,一次操作相当于把这些d和a ...
- 2020.9月做题记录
八月的做题记录因为是暑假所以鸽掉了. 离联赛真的不远了,要继续努力啊qwq- week -1 2020.08.30 2020.08.30 今天考试,修了20+次锅,修的我都没有心情做题了- 然后开始消 ...
- 【CodeForces】Codeforces Global Round 9
比赛链接 点击打开链接 官方题解 点击打开链接 Problem A. Sign Flipping 将奇数位的数取非正值,偶数位的数取非负值即可. 单组数据时间复杂度 O ( N ) O(N) O(N) ...
- mysql源码分析——索引的数据结构
引子 说几句题外话,在京被困三个月之久,不能回家,所以这个源码分析就中断了.之所以在家搞这个数据库的源码分析,主要是在家环境齐全,公司的电脑老旧不堪.意外事件往往打断正常的习惯和运行轨迹,但这却是正常 ...
- 在windows上的git bash中安装tree 和 linux tree命令使用
在windows上的git bash中安装tree 和 linux tree命令使用 文章目录: 1 在windows上的git bash中安装tree 1.1 下载windows版本的tree 1. ...
- 的tree用法_linux命令tree用法
CentOS7.3学习笔记总结(四十九)-linux命令tree用法 tree命令用于以树状图形方式列出目录结构(指定目录下的所有文件.所有目录). 该命令默认未安装,安装命令:yum -y inst ...
- Qt 可编辑的树模型(Tree Model)的一个实例
本实例来自Qt 官方的一个实例(Editable Tree Model Example) 简介: 本实例是关于怎样基于模式视图框架下的 树模型的实现. 该模型支持可编辑的表单项,自定义表头,删除插入行 ...
- Theory Defect in selecting best pruned tree from CCP with Cross-validation
The problem is: Selecting best pruned tree from CCP with Cross-validation -------------------------- ...
最新文章
- 冷却负载、人为因素影响传统数据中心效率
- 【Python】一个已经存在 10 年,却被严重低估的库
- html 按下和松开事件,利用JQuery实现一个键盘按下与松开触发事件
- phalcon: 缓存片段,文件缓存,memcache缓存
- gsonformat插件_吐血推荐珍藏的IDEA插件
- Ubuntu IP设置为静态
- python语音分割_Python 牺牲性能以提升程序员的工作效率
- 市场上常见电阻阻值表
- AD15批量修改丝印的方法
- 尚学堂第十一章多线程习题答案
- 计算机键盘按键错乱,笔记本键盘按键错乱怎么办 解决笔记本电脑个别按键功能错乱...
- 共赴开源路,共筑新丰碑!2022云栖大会龙蜥操作系统峰会圆满落幕!
- PBRT学习笔记:在单位圆内部均匀采样
- 手Q游戏中心的个性化推荐实战 | CSDN博文精选
- Unity3D手游项目的总结和思考(6) - Xlua的使用心得
- abb机器人编程手册_002.ABB机器人高级编程--String飞升篇
- Ubuntu常见命令
- Python的第三次作业——陈灵院
- 数加加众包:奔驰“哭诉维权”美女硕士,你“不要脸”的样子真的很美
- MDF智能合约靠谱吗?