题意:给出一个$n \times m$的格子,也给出相邻两个格子的能够通行的方向,保证这个图构成了一个DAG。显然求出这样的格子对$(p,q)$的个数:$(1,1)$能够到达$p$,$p$能够到达$q$,$q$能够到达$(n,m)$。
题解:首先可以把$(1,1)$不能到点和不能到$(n,m)$的点都删除掉,那么这样就有了一个平面上的有向图。对于每个点$p$,$q$的个数就是$p$能够到达的点个数。考虑这个平面图,我们从$p$出发,根据左手规则沿着墙可以走出一条到$(n,m)$的路径;然后根据右手规则沿着墙也可以走出一条路径。显然这两条路径构成了一条闭合的曲线,在曲线内部的点都是$p$可以到达的。显然可以考虑用类似梯形剖分的方法来求内部点个数,当往右走的时候减去下方点个数,当往左走的时候加上下方点个数。可以发现,然后这个是可以加上记忆化来dp的。
枚举一个点$p$的时候,会有两种走法,枚举一下,取最大的作为答案即可。