NOIP集训-10.28总结

真·NOIP模拟题
------------------------------------------------------------------------
 
Function:SuperOj971
只需要发现有一些数的阶乘是可以拆成其他几个数的阶乘的积的,
然后能拆就拆,再把所有数字拿来排个序输出就好...
------------------------------------------------------------------------
Box:SuperOj972
搜索即可
------------------------------------------------------------------------
Tree:SuperOj973
假如把所有白色的边减去一个权值q,然后做最小生成树,
假设在最小生成树中选了p个白色的边,那么最后的答案加去p*q就一定是刚好选p条白色得到的最小答案
然后发现q越大p就越小,因此可以二分答案q
注意,我们排序的时候如果权值一样优先把白色的排在前面,
这个时候可能出现这种情况:当q=q1时,p<k,当q=q2时,p>k,这是应取q=q2的答案,并且最后答案应减去k*q
(因为题目保证了一定有解)
------------------------------------------------------------------------