首先你发现每棵树的根的 \(c_i\) 之和必须等于 \(s\),然后我们先 bitset 优化一下背包后,不难发现剩下的点一定可以从大到小接在选出的结点最大的 \(c_i\) 的下面,如果不能就肯定无解了。