题面
题目大意就是让你给一棵树的每条边染色,但是有达到2条边是同一种颜色的一个点会被视作坏点,要求坏点的个数不能超过k,使得颜色种数最小,并按照输入顺序输出每条边的颜色。
思路是贪心,很显然,把度数多的点当做坏点是最优的,直接给度数大到小的前k个点打上坏点标记,然后直接遍历树染色即可,我们在遍历树的同时记下当前这个点和父亲之间的边的颜色co,如果是坏点就给和这个点相连的所有边染上co,否则就开始给连到它儿子的边染不同色,答案就是染色时的max,在染色的同时更新下每条边的颜色就好了,时间复杂度O(n)
G. Privatization of Roads in Treeland
最新推荐文章于 2021-07-13 12:03:11 发布