【NOIP2017提高A组冲刺11.3】总结

来源:互联网 发布:c 数据采集 编辑:程序博客网 时间:2024/05/16 01:18

今天让我最深刻的是,比赛的时候不要想是什么类型的比赛,不管难度如何,一定要将时间分配好,然后拿最多的分。
第一题,首先想到二分,由于忘记2-sat怎么打,我想到了另一个做法。就是强制选择x,不行就选择y。然而这样是不符合2-sat的,因为肯定还有其他更优的解。
果然,正解就是2-sat+线段树。线段树是用来将要连的边缩成一大块,避免一个一个点连。2-sat关键性的东西还是忘掉了。其实就是选A,另一个B必选,用tarjan判环,如果某二元组的(A,B)都必选(即在同一个环内)就矛盾。
最重要的是,2-sat模型中,连的边要明确地表示一个东西,不然调试的时候很麻烦。
第二题我感觉这道题有点麻烦,先跳过。
珍惜能够手推的数据
我第一题只打了30分,很绝望,此时已经过了11点了,我先想到第三题一定有什么结论。于是我研究了下样例,如果玩家狠的话一定会逼对方上绝路,那么有结论如果a[父亲]>a[儿子],儿子为叶子节点,那么儿子必败,父亲必胜。我又手推了另一个数据,发现有点像sg函数。
打着打着,发现有点不对劲。因为x还可以由fa[x]转移过来。那怎么办呢?看到n^2是60分,肯定是以每个点为根节点跑一遍。起点作为根节点,可以由下面的点向上推过来。不过时间不多了,先打了个60分。在向100分冲击的时候,时间不够了。后来我将100分打完,交上去AC。TOT……
今天学到了什么:
对于博弈,一定要心狠,让游戏尽快结束,从而得到显然的结论(可能性比较大)。
学过的东西到最后还是要及时去回顾,不然忘掉了很可惜
时间安排。。。。