也算是最近幾次比較水的一次吧。
考試時看T1像個打表找規律的題,扔了,去看T2,帶修莫隊??不會,完戲。看了T3,我決定還是去看T1。
看着T1,我突然發現T2是個大水題:主席樹就行,不帶修,修改時只需修改一棵主席樹上的權值。不管了,先切了它。十分鐘碼完,40行,兩個樣例都是一邊過。。。突然心裏特別虛,於是我決定打個對拍,一拍就錯(不要迷信樣例,包括大的!)。
從頭到結束半個小時T2就搞定了,然後我去推T1的式子,通過打表我們可以發現:一隻兔子與其爸爸的差必然爲斐波那契數列中的一項,那一項就是比這隻兔子小的最大的一項。於是我們就可以二分出這一項,一直往上掃就可以得到答案。10^12大概到了59項,所以複雜度60*log60*m,好像有點玄(考後證明這樣也能A)。。。。於是想到,可不可以類似倍增lca的思路(將每一個數唯一分解爲若干2的k次冪之和),將每一個數唯一分解爲若干斐波那契數之和,即可知道他們的爸爸與深度。然後就愉快的AC了這道題。
大概還有50min,去看T3,看了看,好像倒着掃就可以確保字典序最小,k=1直接硬判,k=2可以用並查集維護,但是沒有想到在值域上求解。所以打了個在點上求解的,理論複雜度O(n^2)。
最後一看,T3炸了?輸出ans->輸出ans+1,分數12->40,把else放在另一個if裏面,分數40->72,改了改擴展域並查集,分數72->84,
最後被玄學了:
1 printf("%d\n",ans); 2 int len=h.size(); 3 for(int i=len-1;i>=0;i--) 4 printf("%d ",h[i]);
wa84到死,不知怎麼回事,後來改成了這樣:
1 printf("%d\n",ans); 2 for(int i=ans-2;i>=0;i--) 3 printf("%d ",h[i]);
感覺沒啥用,也沒交,後來交了一下,A了?
T1A掉了,T2莫名其妙wa了,什麼鬼,我拍了2個小時呢,發現顏色可以>n,改了之後,T了?
卡了卡常,A掉了。
感覺這次還行,至少三道題都是正解思路(除了T3在值域求解),但是因爲種種原因炸成了100+75+12=187,rk4
沒了