[Look-back] 20250905 T2 Island Hopping

[Look-back] 20250905 T2 Island Hopping

做太久了,所以是怎么会逝呢?


其实一开题就发现了航线上的性质,但是当时是以一个非常不清晰的方式描述的,我描述的是“两两岛屿之间有没有陆地”。但是什么叫之间呢?是什么意思?当时想的是两个点之间的矩形内没有陆地,但是我们的问题主要是集中在连通块之间,两个点之间有没有航线其实对解决连通块之间航线的问题没啥用,因为岛的形状是可以很奇怪的,如下。

两个点之间的矩形内没有陆地:其实这个就对了,按这个连,边数就是 \(O(nm)\) ,但是并没有看出来他是对的。

你不能说 1-3 之间就肯定是要从 2 中转。

但是其实我没有一种敏感性,就是显然这个性质是非常重要的,应该尽可能把它变成一个可用的形式。然后想暴力的时候想到其实用什么特殊技术解决是不可能的,就应该是分层图,但是好像没有什么别的性质了。

这个时候我才意识到,其实要控制一下边的数量,就是刚刚的结论,一个更可用的版本:一个航线中间如果穿过陆地,那么下来转机是更优的。这一下就去掉了一大部分的航线。但是还有那些在海中间拐并且避开陆地的航线,但是很容易就能想到:

如上,被迫避开陆地的航线肯定是不优的。

因此我们只需要留下这种边:

那么,这些有多少个呢??我最开始以为没有优化,但是后来仔细分析每条路径都必须要有一个拐点(当然,每个点还可以不拐弯,但是这样最多 \(4\) 个),而对于一个没有陆地的点,他只可能作为他上下左右四个最近陆地的拐点,所以,总边数是 \(O(nm)\)。就做完了。


感觉最大的问题就是太发散了,可能前一个小时都不会有什么很大的进展,没有认识到的可能方向。很多时候都是不知道在空想什么,但是没有足够深刻的理解已经发现的性质,没有整合和利用之前的性质。找性质也是要有目标、区分主体的。

posted @ 2025-09-05 15:39  haozexu  阅读(7)  评论(0)    收藏  举报