提出 #73588680
ソースコード 拡げる
#include <iostream>
#include <vector>
#include <deque>
#include <string>
#include <tuple>
using namespace std;
const int INF = 1e9;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
int main() {
int N, M;
cin >> N >> M;
vector<string> grid(N);
for (int i = 0; i < N; i++) {
cin >> grid[i];
}
// dist数组,初始化为无穷大
vector<vector<int>> dist(N, vector<int>(M, INF));
dist[0][0] = 0; // 起点
deque<pair<int, int>> dq;
dq.push_front({0, 0});
while (!dq.empty()) {
auto [x, y] = dq.front();
dq.pop_front();
// 如果已经到达终点,可以提前退出(但为了保险,继续直到队列空也可以)
// if (x == N-1 && y == M-1) break;
for (int dir = 0; dir < 4; dir++) {
int nx = x + dx[dir];
int ny = y + dy[dir];
if (nx < 0 || nx >= N || ny < 0 || ny >= M) continue;
int cost = (grid[nx][ny] == '#' ? 1 : 0);
int new_dist = dist[x][y] + cost;
if (new_dist < dist[nx][ny]) {
dist[nx][ny] = new_dist;
if (cost == 0) {
// 如果是通道,代价为0,加入队列前端优先处理
dq.push_front({nx, ny});
} else {
// 如果是墙,代价为1,加入队列后端
dq.push_back({nx, ny});
}
}
}
}
cout << dist[N-1][M-1] << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - 迷路からの脱出 |
| ユーザ | t001s |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 400 |
| コード長 | 1589 Byte |
| 結果 | AC |
| 実行時間 | 9 ms |
| メモリ | 6144 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt, sample06.txt, sample07.txt, sample08.txt, sample09.txt, sample10.txt |
| All | sample01.txt, sample02.txt, sample03.txt, sample04.txt, sample05.txt, sample06.txt, sample07.txt, sample08.txt, sample09.txt, sample10.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in46.txt, in47.txt, in48.txt, in49.txt, in50.txt, in51.txt, in52.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| in01.txt | AC | 1 ms | 3396 KiB |
| in02.txt | AC | 1 ms | 3472 KiB |
| in03.txt | AC | 1 ms | 3396 KiB |
| in04.txt | AC | 1 ms | 3508 KiB |
| in05.txt | AC | 1 ms | 3636 KiB |
| in06.txt | AC | 7 ms | 6032 KiB |
| in07.txt | AC | 6 ms | 4980 KiB |
| in08.txt | AC | 6 ms | 5120 KiB |
| in09.txt | AC | 7 ms | 5492 KiB |
| in10.txt | AC | 9 ms | 4980 KiB |
| in11.txt | AC | 9 ms | 5640 KiB |
| in12.txt | AC | 9 ms | 5080 KiB |
| in13.txt | AC | 7 ms | 6068 KiB |
| in14.txt | AC | 8 ms | 5120 KiB |
| in15.txt | AC | 1 ms | 3496 KiB |
| in16.txt | AC | 1 ms | 3724 KiB |
| in17.txt | AC | 6 ms | 5036 KiB |
| in18.txt | AC | 9 ms | 5036 KiB |
| in19.txt | AC | 6 ms | 5116 KiB |
| in20.txt | AC | 7 ms | 6084 KiB |
| in21.txt | AC | 6 ms | 5036 KiB |
| in22.txt | AC | 9 ms | 5132 KiB |
| in23.txt | AC | 8 ms | 5168 KiB |
| in24.txt | AC | 6 ms | 5804 KiB |
| in25.txt | AC | 3 ms | 4524 KiB |
| in26.txt | AC | 1 ms | 3632 KiB |
| in27.txt | AC | 1 ms | 3564 KiB |
| in28.txt | AC | 6 ms | 5184 KiB |
| in29.txt | AC | 1 ms | 3724 KiB |
| in30.txt | AC | 1 ms | 3500 KiB |
| in31.txt | AC | 6 ms | 5100 KiB |
| in32.txt | AC | 7 ms | 6048 KiB |
| in33.txt | AC | 1 ms | 3524 KiB |
| in34.txt | AC | 6 ms | 5044 KiB |
| in35.txt | AC | 7 ms | 6144 KiB |
| in36.txt | AC | 9 ms | 5572 KiB |
| in37.txt | AC | 7 ms | 5024 KiB |
| in38.txt | AC | 1 ms | 3524 KiB |
| in39.txt | AC | 1 ms | 3632 KiB |
| in40.txt | AC | 7 ms | 5060 KiB |
| in41.txt | AC | 9 ms | 5096 KiB |
| in42.txt | AC | 5 ms | 4440 KiB |
| in43.txt | AC | 9 ms | 5044 KiB |
| in44.txt | AC | 9 ms | 5044 KiB |
| in45.txt | AC | 9 ms | 5096 KiB |
| in46.txt | AC | 7 ms | 4916 KiB |
| in47.txt | AC | 1 ms | 3508 KiB |
| in48.txt | AC | 1 ms | 3628 KiB |
| in49.txt | AC | 6 ms | 5132 KiB |
| in50.txt | AC | 6 ms | 5036 KiB |
| in51.txt | AC | 6 ms | 5008 KiB |
| in52.txt | AC | 6 ms | 5036 KiB |
| sample01.txt | AC | 1 ms | 3488 KiB |
| sample02.txt | AC | 1 ms | 3508 KiB |
| sample03.txt | AC | 1 ms | 3596 KiB |
| sample04.txt | AC | 1 ms | 3596 KiB |
| sample05.txt | AC | 1 ms | 3488 KiB |
| sample06.txt | AC | 1 ms | 3508 KiB |
| sample07.txt | AC | 1 ms | 3580 KiB |
| sample08.txt | AC | 1 ms | 3400 KiB |
| sample09.txt | AC | 1 ms | 3444 KiB |
| sample10.txt | AC | 1 ms | 3500 KiB |