.article-info-tag,button{text-transform:uppercase}.day,.postMeta,.postSticky{position:relative}.postTitle a:link,html{-webkit-tap-highlight-color:transparent}#blog-calendar,.code-copay-btn,.code-hljs-len,.hidden{visibility:hidden}#EntryTag,#blogTitle h1{margin-top:20px}#EntryTag a,.postSticky{background:#6fa3ef}#blogTitle h1 a:hover,.dayTitle a,a,a:active,a:link,a:visited{color:#5c8ec6}#calendar table a:hover,#navList a:hover,.postDesc a:hover,a:active,a:hover,a:link,a:visited,button{text-decora…ryTag a:visited{color:#666}#BlogPostCategory a,#EntryTag a{height:20px;line-height:20px;color:#fff!important;padding:3px 5px;border-radius:3px;margin:2px 5px 0;text-decoration:none;font-size:14px}#BlogPostCategory a:hover,#EntryTag a:hover{transition:all .3s linear 0s;opacity:.8}#topics .postDesc{padding-left:0;width:100%;text-align:left;color:#666;margin-top:5px;background:0 0}.feedbackListSubtitle-louzhu:after,.feedbackListSubtitle:after,.feedbackListSubtitle:before{top:11px;right:100%;left:-1

CF1375G Tree Modification

\(\mathtt{Description}\)

\(n\) 个点的树,可以进行如下操作:

选择三个点 \(a,b,c\),要求 \(a,b\) 相邻,\(b,c\) 相邻,断掉 \(a\) 的所有边,并连到 \(c\) 上,将 \(a,c\) 连边。

求最小操作次数使得该树变成菊花图。

\(n\le2\times 10^5\)

\(\mathtt{Solution}\)

考虑这个魔性的修改带来的效果。

对树进行黑白染色(即 \(x\) 节点的父亲和儿子都是与其相反的颜色)并动态维护颜色,发现一次操作之后,只会改变 \(a\) 的颜色。

而菊花图的条件则是只有一个点是黑或白,所以答案就是 \(\min(\text{white,black)}-1\)(即至修改黑点颜色或至修改白点颜色)。

\(\mathtt{Code}\)

#include <cstdio> 
#include <algorithm>

const int N = 2e5 + 5 ;

int n,cnt;

int head[N],to[N << 1],nxt[N << 1],clr[N] ;

void add(int u,int v) {
	to[++cnt] = v,nxt[cnt] = head[u],head[u] = cnt ;
}

void dfs(int x,int f) {
	clr[x] = clr[f] ^ 1;
	for (int i = head[x]; i; i = nxt[i]){
		int v = to[i] ;
		if (v == f) continue ;
		dfs(v,x) ;
	}
}

int main() {
	scanf("%d",&n) ;
	for (int i = 1,u,v; i < n; ++i)
		scanf("%d%d",&u,&v),add(u,v),add(v,u) ;
	dfs(1,0) ; 
	int w = 0,b = 0 ;
	for (int i = 1; i <= n; ++i)
		w += clr[i],b += clr[i] ^ 1;
	printf("%d",std::min(w,b) - 1) ;
	return 0 ; 
}	 
posted @ 2021-07-21 11:03  feicheng  阅读(21)  评论(0编辑  收藏  举报