PKUWCWC
PKUWC Day1
T1看半小时没思路,先看T2发现是数据结构,我爱数据结构!
想做法,先想l=1,可以直接扫描线求虚树。l不等于1呢,一个比较好的想法是改为链chkmx,求对应层数上>=l的个数,发现我貌似可以对一个连续段进行一起做,复杂度正好n两log,m一log。写着写着发现m上也带2log,遂沉思,发现没有更好的做法,先写。写完过不了,调样例,调了30min,终于过了。交!测了1min,后三个点RE,前面的点都过了,开大数组,再等1min,过了,非常激动。立马看T1,认为过T1就是赢!!
T1想了一下,转化为加最少的边使得最大独立集<a,不太会做,a>b+1的时候,答案是好求的,每个连通块连1条边。想一下,怎样加最少的边使得最大独立集-1,可以先每个连通块都连一条,然后就不会了。猜一下每个连通块为一个团,n^3感觉可以过,样例过了,交一下全T。改为300,发现前几个点过了,很激动,改为一个团最多100个点,WA。思考一下,改为连通块个数<=50的时候一个团可以很大,否则最大为100,交一下,过了。
看一下T3,很悠闲,发现第一档很简单,第二档觉得是n^3/w,思考一下可以多加一维0/1,表示目前谁操作,就可以n^2。写tarjan,交一下不过,再交一发还不过,改一下过了,剩下20min坐牢。
出来发现220的分数不是很低,发现别人T2都是n三log,m两log,讲了一下我的做法,发现我的做法n实际上是3log的。
睡觉。
PKUWC Day2
看T1,想许久不会。1分都不会。穿插着看了T2和T3,先写了T3暴力,T2只会nV,写完后思考一下500怎么做,发现dp第二维并不会满,于是用map存第二维写完发现过500了,剩下的都RE,改大数组,5000也过了。发现我这个东西很好卡,可以被卡到nV^2,不管了反正是ioi赛制。
T1依旧不会,最后9min调出t1的16。结束,T1做了3个小时多还是不会。