赛时安排
7:40~7:50 读题
7:50~8:10 手推了推T1的样例,然后想了想思路,接着看见了第一档30pts的暴力,想着先拿那个分数,但是枚举后的验证没有思路,就先往下写。
8:10~8:40 看了看T2,觉得第一档的暴力好拿,写了个最小生成树,然后去看T3。
8:40~9:30 开始看T3,觉得题面好眼熟, 以前好像考过原题…但是忘了思路是啥了…思考了一下,发现是个分层图最短路…敲完走人。(题面似乎有一点锅…它说当前为白洞的话,停留就不消耗燃料。但是我按这个写…样例过不了,反着来就过了。况且从白洞跃迁到黑洞消耗燃料减少,如果按题中意思走的话,停留所得到的代价不就铁亏本了…)
9:30~11:00 思考T4,先看题想到了跑一个次短路,但是这个思路是错的…然后想到了写第一档的暴力,枚举删每一条边,然后跑最短路…但是在存删的哪条边的时候刚开始脑子短路了…想着存下来当前边的起点和终点,然后跑最短路的时候如果当前边的起点和终点是要删的,就跳过…然后样例就一直挂,接着反应过来后,改成存下每一条边的编号…然后过了…接着思考了一下正解,想着能不能存下跑的最短路上的边,然后枚举这些边,跑最短路…但是想不出来如何储存,就先放着了。
11:00~11:30 接着想T1的暴力。看了一眼T的范围也不大,于是就想着判断时暴力走出每一秒的小球走的位置,然后每次再判断一下是否碰撞,最后看是否满足条件。
11:30~12:00 又想了想其它题的正解…
赛后总结
T1
这道题有一个性质,当两个球相撞时,它们实际上可以看作彼此穿过然后继续走。如果想到这个的话暴力分挺好拿到的。然后正解…想到性质我估计也写不出来…套到图上,然后看连通块这个操作挺妙的。
T2
暴力的40分拿到了,然后是正解。这个正解实际上就是在暴力的基础上进行优化。暴力是建一个完全图来做kruskal,然后这样的话要建的边就会特别多。优化就是取出每个点,它的 x , y , z x,y,z x,y,z与其它点的代价最小的三条边来连,这样就将边的数量大大减少得到优化,这个思路不是特别难想,如果想到的话…应该能A。
T3
这道裸题…原本应该能A的,但是,读着读着题目有一个条件给漏掉了…**每过1单位时间,黑洞变为白洞,白洞变为黑洞。**然后建图上就出了问题…再然后,上面说题目出锅的那点…刚好和这个类似于反过来的操作,但还是有区别,所以托此原因…还有60pts,但是因为是分层图…我数组开小了…开成了一个图的大小了,如果开大亿点点,那个代码80pts…唉,这道题出的bug太多了,以后要注意。
T4
To be continued