https://codeforces.com/gym/102361
E:
https://codeforces.com/gym/102361/problem/E
题意:
给出一个n∗m的迷宫,有a个入口,b个出口。
现在有a个机器人都从入口出发,一开始方向默认为下,你可以选在在一些格子上面放置一个转向器,转向器有四种:
- 向下走变为向右走;
- 向下走变为向左走;
- 向上走变为向右走;
- 向上走变为向左走。
每个格子最多放一个转向器。
问最后是否存在一种方案,使得每个机器人都能到达从其中一个出口。
网络流题。
有很多类似模型的网格网络流问题。
一种如:弯弯国,无限之环等,要确定每个格子的状态
还有就是这种:网格上路径连通问题
一定要先观察出性质:
所有的机器人的路线不会有重合线段(可以交于某点)
进一步:
每个点从横着的方向和竖着的方向分别最多经过一次
考虑把每个格点拆成横着的点和竖着的点,横竖的点各自再拆成入点和出点
横点之间出点与入点流量1相连,竖点之间同理
每个横点竖点分别使自身入点连接出点,流量1
这样保证了横着竖着最多经过一次。
转向?
等价于,横竖同时经过一次!
令每个格点的横点出点连接该格点竖点的入点,竖点出点也连接横点入点即可。
注意到,虽然可能会出现“折返”的流,但是一定不优,不影响判断。
G:
https://codeforces.com/gym/102361/problem/G
轮廓线DP即可。
卡常。先排除不可能是轮廓线的二进制数。
大概能省去8倍的时间。
998ms通过?
K: