题目描述
这题太虎了,所以没有背景。
给你一棵树,边有黑白两种颜色,你每次可以选择两个点,把这两个点之间的唯一简单路径上的所有边颜色取反,某些边要求最终颜色必须是黑色,还有些边没有要求,问最少操作多少次能达到目的
输入格式
第一行一个整数$n$,代表点数
接下来$n-1$行,每行三个数$x,y,z$,代表点$i$与$x$之间有一条边,若$y$为$0$代表初始为白色,否则为黑色,若$z$为$0$代表不对最终颜色做要求,否则代表要求为黑色。
输出格式
达到目的的最少操作多少次数。
样例
样例输入:
7
1 0 1
1 1 1
2 0 1
2 0 1
3 1 1
3 0 1
样例输出:
3
数据范围与提示
对于$30\%$的数据,所有的$x$等于$1$。
对于$70\%$的数据,所有边最终都必须为黑色
对于$100\%$的数据,$n\leqslant 1,000,000$。
题解
先看数据范围,$n\leqslant 1,000,000$(注意是一百万,不是十万,可能只有我数不清几个$0$了吧?),这只能允许我们$\Theta(n)$。
还是先从部分分下手,观察$70\%$的数据,考虑贪心
原文:https://www.cnblogs.com/wzc521/p/11425001.html