CF Clone 2019 CCPC Qinhuangdao Onsite

https://codeforces.com/gym/102361

E:

https://codeforces.com/gym/102361/problem/E

题意:
给出一个nm的迷宫,有a个入口,b个出口。
现在有a个机器人都从入口出发,一开始方向默认为下,你可以选在在一些格子上面放置一个转向器,转向器有四种:

  • 向下走变为向右走;
  • 向下走变为向左走;
  • 向上走变为向右走;
  • 向上走变为向左走。

每个格子最多放一个转向器。
问最后是否存在一种方案,使得每个机器人都能到达从其中一个出口。

 

网络流题。

有很多类似模型的网格网络流问题。

一种如:弯弯国,无限之环等,要确定每个格子的状态

还有就是这种:网格上路径连通问题

一定要先观察出性质:

所有的机器人的路线不会有重合线段(可以交于某点)

进一步:

每个点从横着的方向和竖着的方向分别最多经过一次

考虑把每个格点拆成横着的点和竖着的点,横竖的点各自再拆成入点和出点

横点之间出点与入点流量1相连,竖点之间同理

每个横点竖点分别使自身入点连接出点,流量1

这样保证了横着竖着最多经过一次。

转向?

等价于,横竖同时经过一次!

令每个格点的横点出点连接该格点竖点的入点,竖点出点也连接横点入点即可。

 

注意到,虽然可能会出现“折返”的流,但是一定不优,不影响判断。

 

G:

https://codeforces.com/gym/102361/problem/G

轮廓线DP即可。

卡常。先排除不可能是轮廓线的二进制数。

大概能省去8倍的时间。

998ms通过?

 

 

K:

https://codeforces.com/gym/102361/problem/K

posted @ 2020-10-13 13:14  *Miracle*  阅读(122)  评论(0编辑  收藏  举报