题目大意:
给一颗树,每个节点有个权值Ci,求染色顺序,使得节点的染色时间Ti*Ci的总权值最小,其中要求对任意节点,只有当把父亲节点染完后,才能染该点。
解题思路:
比较巧妙的贪心。
分析知,权值大的肯定要先染,而要染它,必须先染其父亲,所以可以把它和其父亲放到一个集合里,然后将集合的总值/集合元素个数作为新的权值。
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include