Poetize 杯NOIP模拟赛 II 暨Tyvj龙年七夕欢乐赛

    感觉看完题解能懂1,、2题,后悔比赛的时候没有多想一想。把这个比赛当成vain杯了,就第二题交了个样例,烦死了。

七夕祭

  环形纸牌均分,O(n^2)暴力可得70,如果找中位数是O(n logn)就A掉了。需要注意的是,如果n为偶数中位数取中间那两个都可以。

Code

太鼓达人

    题目的关键在于抽象出图论模型,然后将求哈密顿路(NPC啊亲~)转化为欧拉回路问题并证明欧拉回路的存在。

    第一反应,建一个图,点与0到2^k-1的二进制数对应,每个点u向与(u<<1)and((1<<k)-1)和(u<<1+1)and((1<<k)-1)的点连边,图中一共有2*2*2^(k-1)条边,求哈密顿路,如果不存在答案就是最长的一条只经过任意点一次的路径长度。然后我重新构图,把原图中的点变成边,边变成点。在新图中有2^(k-1)个点2^k条边,容易证明这个图存在欧拉回路,所以原图存在哈密顿路,直接DFS就行了。

        这个程序是在求哈密顿路!!!但是认为u是边的话,应该是在新图里求欧拉路吧。我现在很糊涂!!郁闷!!

    这个题目还是蛮有意思的,认为u是边的话刚好u>>1是起点 ,u and(1<<(k-1))是终点。所以怎么解释都行吧。

Code
原文地址:https://www.cnblogs.com/lijianlin1995/p/2656795.html