你必须从四维空间的角度来解这一题…
传送门
题解
此题的重难点在于建模。
不难发现,如果单单考虑空间,这题的模型还是难以建立。
所以需要将时间也考虑在内,从四维空间的角度来建模。(什么鬼???)
设图中的每一个节点都表示某一个时间上的一个星球,比如“第$i$天的第$j$个星球”。
考虑宇宙飞船的飞行,其实就是在四维空间内穿梭,每一次飞行相当于“从第$i$天的第$j$个星球飞往第$i+1$天的第$k$个星球”。
然后建模就很方便了。
对于第$i$天的星球$j$,都连向第$i+1$天的星球$j$,容量为$+\infty$。
弄一个源,连向每一天的地球;再由每一天的月球连向一个汇,容量均为为$+\infty$。
对于一次飞行,在起点与终点之间连一条容量为飞船大小的边。
然后最大流就是当前最多能运送的人员数量。
于是乎就可以从小到大枚举答案,每次答案增加时就在网络中加入一套新的节点和边。
当最大流大于等于人数的时候就行了。
由于每次都是在上一次的基础之上继续刷最大流,用Dinic会比较快。(网络流管什么时间复杂度)
如果地球和月球不在一个联通块里,就无解,通过并查集可以解决。
代码
1 |
|