P1126 機械人搬重物

2021-10-25 10:13:23 字數 726 閱讀 9532

這道題本來沒啥好說的,但細節實在比較多,被坑了好多次。

首先輸入的是格仔圖,需要轉化成點圖,具體操作是a[i][j]=a[i-1][j-1]=a[i][j-1]=a[i-1][j]=1

最坑的乙個點在於,平時寫寬搜的時候,遇到出邊界或者不能訪問的點時,都是直接進入下一層迴圈(continue),但在這道題中,由於可以走1~3步,那麼當路徑上出現障礙時,則不能進行下一輪迴圈,需要break。

#include

#define max 55

using namespace std;

int mod(int x)

const int movx = , movy = ;

int a[max][max];

bool vis[max][max][5];

int n, m;

pt st, ed;

void bfs()

for(int i = 1; i <= 3; i++)

if(vis[u][v][t.dir])

vis[u][v][t.dir] = true;

q.push(pt(u, v, t.dir, t.step+1));

}if(!vis[t.x][t.y][mod(t.dir+1)])

if(!vis[t.x][t.y][mod(t.dir-1)])

}if(!flag)

}

return 0;

P1126 機械人搬重物

機械人移動學會 rmi 現在正嘗試用機械人搬運物品。機械人的形狀是乙個直徑1.6公尺的球。在試驗階段,機械人被用於在乙個儲藏室中搬運貨物。儲藏室是乙個n m的網格,有些格仔為不可移動的障礙。機械人的中心總是在格點上,當然,機械人必須在最短的時間內把物品搬運到指定的地方。機械人接受的指令有 向前移動1...

P1126 機械人搬重物

includeusing namespace std const int inf 1000000000 int a 55 55 int sx,sy,ex,ey int n,m int mincnt inf int vis 100 100 mapmp struct node void bfs node...

P1126 機械人搬重物

機械人移動學會 rmi 現在正嘗試用機械人搬運物品。機械人的形狀是乙個直徑 1.6公尺的球。在試驗階段,機械人被用於在乙個儲藏室中搬運貨物。儲藏室是乙個n times mn m的網格,有些格仔為不可移動的障礙。機械人的中心總是在格點上,當然,機械人必須在最短的時間內把物品搬運到指定的地方。機械人接受...