JZOJ 6653. 【2020.05.27省选模拟】树
题目大意
- 一棵以111为根大小为nnn的树,要求父亲编号小于儿子,2n−22n-22n−2个数,可任意分配使它们作为树的边权和每个点的父亲编号,求各种分配下111到nnn路径长度分别为[1,n)[1,n)[1,n)时路径的最大边权和。
- n≤105n\le10^5n≤105
题解
- 树的形态确定后,最大边权和自然为剩余未选的若干个数之和。
- 统计每个数出现的个数cic_ici,求出前缀和,若存在sumi−1<i−1sum_{i-1}<i-1sumi−1<i−1则必然无解,因为可选的父亲个数小于儿子个数;若存在sumi−1=i−1sum_{i-1}=i-1sumi−1=i−1则它iii必然要作为111到nnn路径上的点,不然没有多余的父亲编号让iii后某个点连向iii前某个点;其他的点都是在或不在路径上皆可。
- 否则,先考虑从111到nnn路径最长的情况,自然可以把所有ci≠0c_i\not=0