zoukankan      html  css  js  c++  java
  • Push a Box

    这道题我时间复杂度写残了还以为是常数太大。。。

    bfs一下。设f(x,y,i)表示盒子在(x,y)位置,bessie在(x,y)的i方位是否可达。

    实际上,这道题虽然bessie可以随便移动,但是导致盒子运动的状态肯定可以用f(x,y,i)描述。

    首先计算原点->f(盒子位置,i) 是否可达。可以使用bfs计算,但是要避开箱子。

    再计算f(x,y,i)的可达性。

    如果要从箱子的一面转到另一面,则把箱子变成障碍物后,必须至少有一条路径不经过箱子到达另一面。

    建出点双树后判断即可。

    如果要推箱子直接判断有没有障碍物即可。

  • 相关阅读:
    Swift-基础语法之变量&常量&元组
    Swift
    安装MySQL
    LNMP 简介
    LNMP
    Django 定义数据模型
    Django 添加应用
    Django 创建第一个项目
    Django 安装
    Django 简介
  • 原文地址:https://www.cnblogs.com/cszmc2004/p/13060823.html
Copyright © 2011-2022 走看看