T1有感觉,因为AB组一起打,所以下意识认为是水题(实际上也不算难?)就直接开始想
从深向浅直接扫一遍,能转就转显然错,从浅向深扫一遍同样不对,因为不知道往上转移的顺序
比如,设该点为x,是0,有的儿子可能转移到x,其子树内转移的次数比另一个儿子多,所以就要优先它
不好处理,看到数据,给了一档2e5,一档5e5,这两档之间还有一组链的,就猜5e5是大常数O(n)解
对于一条链内,把1往上面堆显然对,对于岔路的处理就很麻烦,赛时一开始想着对于一个多子节点,就选它儿子里最长的一条链继续用,然后链拉长后用其他儿子的子树补,使其更长
结果自己出数据卡死了,完全没法处理,怎么办?
赛后:题解反着考虑了,没有动1,直接把0往下沉,沉到深度最大,这样是对的,因为下面全是0,相反的,可以把1,所以直接移0真的很好
得到策略,接下来是实现,发现瓶颈在于找深度最大的1,可以用线段树(最简单),可并堆(很明显),来实现
左偏树浅显地学了一下,大概是不断维护左偏树的性质,而左偏树只有log层,所以合并时只有log层,时间正确了
其他的题目赛时因为打T1上头了,而且没打出来,崩溃了,直接就没怎么思考,事实证明这很不应该,因为这直接导致了赛后改题时很难跟上讲题人的思路,因为自己没怎么独立思考
而且改T1时,有一些奇妙的感觉,一开始学左偏树时就理解地不是很深刻(当然问题并不在这),当时改题时对于一些变量的概念,辨析地不是很清晰,反复打错了好几次,而且对左偏树的部分操作也不是很熟悉(当然问题并不在这)
T1线段树做法及其好打且熟悉,但是为了学新的DS,而且觉得左偏树挺有用的,就打了左偏树
结果因为左偏树外其他部分实现方法不一,导致实现及其丑陋而扭曲,思维混乱至极
敢于挑战,这是好,但损失太大了,而且T2还有一些从未接触过的算法,比如Miller-Rabin,Pollard-Rho之类
要找时间去接触,离NOIP只有不到两个月了,怎么说的来着,起码要光彩地谢幕吧
标签:10,104th,T1,60,改题,因为,直接,左偏 From: https://www.cnblogs.com/tlz-place/p/18459493