愿望群光棍节模拟赛题解。

似乎没人发的样子。。我写个吧囧。。。神犇请鄙视。。。
第一题似乎是IOI的原题的改编版。。只要看过今年IOI的题目应该都会的。。
首先二分答案X,我们需要判断能否有一个长度在L到R之间的奇数的序列中位数大于等于X。。
我们定义一个新序列Ci,若Ai>=x,Ci=1否则Ci=-1。。那么可以发现只要一个序列的C值和>=1。。
这个序列的中位数就大于X。。那么我们只需要算出C序列长度位在L到R之间的奇数的子序列的最大值就行了。。单调队列。。。
第二题首先可以发现每一位是独立的,那么对每一位都可以维护一个线段树进行经典的翻转和求和打标记等操作。。(实现的时候为了不TLE。。最好放在一起。。)
第三题网上有详细的题解。。我就不多说了。。是查分约束的题目。。。
第四题。。。题目的子树是子连通图的意思。。。
设两棵树为A和B
设Dp[a][b]为A中以a为根的子树,B中以b为根的子树同时a和b必须选的答案。
那么我们可以发现计算Dp[a][b]的过程就是给a的孩子跟b的孩子一一配对,他们配对的价值正是Dp的子结果。。
那么我们其实要做的就是求出最优匹配。。用KM或费用流就可以了。。(我居然不会KM。。临场写费用流。。。)

6 thoughts on “愿望群光棍节模拟赛题解。

Leave a Reply to 中国脑筋 Cancel reply

Your email address will not be published. Required fields are marked *