2021/11/5模拟赛

7 : 50 − 8 : 30 7:50-8:30 7:50−8:30
看题
8 : 30 − 9 : 00 8:30-9:00 8:30−9:00
写出来 T 4 T4 T4 的迪杰斯特拉,每次枚举删掉一条边,然后跑一遍。应该有 40 40 40 分?
9 : 00 − 9 : 40 9:00-9:40 9:00−9:40
因为觉得枚举每一条边会有很多冗余的复杂度,所以瞎搞出来了个 dfs 来判断哪些边对从 1 1 1 节点到 n n n 节点的最短路有贡献,把这些边存下来,只枚举删掉这些边的话结果会怎样。运气好点的话可能 60 60 60。
9 : 40 − 10 : 30 9:40-10:30 9:40−10:30
做 T 2 T2 T2 ,一开始没看清题上给的条件 C o s t [ A , B ] = m i n ∣ x A − x B ∣ , ∣ y A − y B ∣ , ∣ z A − z B ∣ Cost[A,B] = min{ |xA-xB|, |yA-yB|, |zA-zB| } Cost[A,B]=min∣xA−xB∣,∣yA−yB∣,∣zA−zB∣,肥肠难过,用空间中两点距离公式搞了搞,还在纸上手推连边时能不能贪心优化。
注意到之后发现贴脸 最小生成树 应该可以拿到一些分,但是没有想到在连边时如何优化,所以得连成一个完全图,这样的话首先想到的是Prim算法,算了下空间可能要 400 + M B 400+MB 400+MB,提面上没直接说空间,我就看 o j oj oj 上写的是 256 M B 256MB 256MB,所以敲了个克鲁斯卡尔。
等敲完的时候看下发文件中给的文件名时才注意到上面说 内 存 512 M 时 限 均 为 1 s 内存512M 时限均为1s 内存512M时限均为1s ,一道题有俩地方都没注意到,不知道还能不能水 60 60 60 分。
10 : 30 − 11 : 10 10:30-11:10 10:30−11:10
T 3 T3 T3 直接分层图,能过两个样例。
11 : 10 − 结 束 11:10-结束 11:10−结束
搞 T 1 T1 T1 ,用二进制枚举状态的话能 30 30 30 分,先把所有球的起点 sort 一遍后的相当于只改变了每个球的下标而不影响后边的操作,这样球i的位置永远不可能到j的右边 ( i < j ) (i < j) (i<j),然后就方便判断碰撞了。
然后只要中规中矩模拟就可以水到分。
但是我在一些点上卡死了,肥肠难过,我以为
2021/11/5模拟赛
这种时候两球会在 4 4 4 碰撞一下然后再回到 3 3 3 和 5 5 5 上。
而且直接模拟的时候,一群球撞到一起很难处理。


T 1 T1 T1 看错题意了,球是无体积的,如果基于这一性质,再往下稍微一推就很容易知道球和球相撞的话只不过相当于没有接触过,即相互穿了过去,这样的话 50 50 50 分就很可得了,再稍微用头想一下就应该能想到每个球最终的结果只有两种,看是否匹配得上就行,然后就可以往正解方向上想了。

T 2 T2 T2 没有用贪心优化一下,每个点最多只会连 6 6 6 个点,即 x , y , z x,y,z x,y,z 分别最接近的时候,这样的话也不需要什么 P r i m Prim Prim 了,用三个不一样的 sort 排下序,然后每次排完来连一波边。而且数组还开小了,往后面再加俩 0 0 0 就又多 10 10 10 分。

T 3 T3 T3 直接 A A A

T 4 T4 T4 想简单了,没想到还有种那么损的可能,就是小 A A A 快到终点的时候你再把路拆掉,让他只能返回好远的路,然后重新跑最短路。

上一篇:自用function


下一篇:CSP-S2021 游记