摘要: 首先拓扑排序,并将障碍点按拓扑序平均分成两半。 那么一条$0$到$1$的路径一定是形如: $0$->前一半点->后一半点->第一个后一半障碍点->后一半点->$1$。 对于两边分别暴力枚举所有情况,设$f[i]$表示$0$出发到达$i$,且到$i$之前不经过任意一个后一半障碍点到达$i$的路径数;$ 阅读全文
posted @ 2016-08-13 19:22 Claris 阅读(470) 评论(0) 推荐(0)
摘要: 显然求出每个点到所有关键点的最短路和次短路即可,答案就是每个关键点的次短路。 设$f[i][j][0]$表示左手在$i$,右手在$j$的解,$f[i][j][1]$表示左手在$i$,右手在$j$,且左手已经动了右手还没开始动的解,然后BFS即可。 时间复杂度$O(n(n+m))$。 阅读全文
posted @ 2016-08-13 03:41 Claris 阅读(351) 评论(0) 推荐(0)
摘要: 首先旋转坐标系,假设$(x,y)$被$(X,Y)$遮挡等价于$X\leq x$且$Y\leq y$。 对于每种坐标系建立两棵线段树: 第一棵按$x$维护已经加入的点的$y$的最小值; 第二棵按$x$维护看得见的点的$y$的最大值。 对于一块三角板,通过第一棵线段树查询即可知道是否可以放下,然后在第二 阅读全文
posted @ 2016-08-13 02:43 Claris 阅读(217) 评论(0) 推荐(0)