编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#219 #1038. 1-04E. zzj & liaoy 想要去摄影 Accepted 100 1235 ms 21324 K C++ 11 / 1.2 K foreyes1001 2019-06-20 20:04:19
显示原始代码
#include <bits/stdc++.h>
using namespace std;

const int maxn = 55;
map<tuple<int, int, int>, int> vis;
int Map[maxn][maxn];
int dx[] = { 1, -1, 0, 0 }, dy[] = { 0, 0, 1, -1 };

int main() {
    int n, m, cnt = 0, sx, sy;
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        for (int j = 0; j < m; j++) {
            if (s[j] == 'p') {
                sx = i;
                sy = j;
            }
            if (s[j] == '#') {
                Map[i][j] = -1;
            }
            if (s[j] == '@') {
                Map[i][j] = ++cnt;
            }
        }
    }
    int target = (1 << cnt) - 1, ans = -1;
    tuple<int, int, int> start = make_tuple(sx, sy, 0);
    queue<tuple<int, int, int> > q;
    vis[start] = 0;
    q.push(start);
    while (!q.empty()) {
        int x, y, state, step;
        tie(x, y, state) = q.front();
        step = vis[q.front()];
        q.pop();
        if (state == target) {
            ans = step;
            break;
        }
        for (int dir = 0; dir < 4; dir++) {
            int nx = x + dx[dir], ny = y + dy[dir], nxt_state = state;
            if (nx < 0 || ny < 0 || nx >= n || ny >= m || Map[nx][ny] == -1)
                continue;
            if (Map[nx][ny] != 0)
                nxt_state |= (1 << (Map[nx][ny] - 1));
            tuple<int, int, int> nxt = make_tuple(nx, ny, nxt_state);
            if (vis.count(nxt) != 0)
                continue;
            vis[nxt] = step + 1;
            q.push(nxt);
        }
    }
    cout << ans << endl;
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:5 ms
内存:300 KiB

输入文件(1.in

3 3
p@#
#..
..@

答案文件(1.out

4

用户输出

4

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:5 ms
内存:272 KiB

输入文件(2.in

3 3
p##
@#@
###

答案文件(2.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:4 ms
内存:236 KiB

输入文件(3.in

5 5
...@.
#####
###.@
#@p#@
..#.#

答案文件(3.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:4 ms
内存:348 KiB

输入文件(4.in

5 5
.@.@#
#.p..
...##
.@..@
##@#.

答案文件(4.out

12

用户输出

12

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:4 ms
内存:260 KiB

输入文件(5.in

10 10
#.########
####.###@#
##########
######.###
@.#.#p#@##
###..##.##
##.#####.#
#.####@#.#
###@##
<15 bytes omitted>

答案文件(5.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:4 ms
内存:236 KiB

输入文件(6.in

10 10
.##.@.#.#.
###..##@#.
...#@#.###
.#.#..#...
#..#.....#
....##..##
..##..@.#p
##....##..
..#...
<15 bytes omitted>

答案文件(6.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:6 ms
内存:400 KiB

输入文件(7.in

10 10
.#@......#
...#......
..#.....##
..#..#....
...##..@.@
...@#.#...
#.#..#..#.
.p......##
.#..#.
<15 bytes omitted>

答案文件(7.out

30

用户输出

30

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:9 ms
内存:528 KiB

输入文件(8.in

20 20
..##.......@........
..#...#....#..##....
...#.#...#..#.#..#..
..#...#..#@###..##..
..#.#....#
<325 bytes omitted>

答案文件(8.out

61

用户输出

61

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:5 ms
内存:364 KiB

输入文件(9.in

30 30
##..##.###........#...#...@##.
#.#..#...##.....#.#.#..##p.#.@
...#.##......#...#.#.....#..#@
#
<835 bytes omitted>

答案文件(9.out

12

用户输出

12

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:9 ms
内存:656 KiB

输入文件(10.in

30 30
.....#..#...#.@..#..##.#..#...
.#..##.....##..........#.....#
##...##...#.#.......p...#...#.
#
<835 bytes omitted>

答案文件(10.out

83

用户输出

83

系统信息

Exited with return code 0
测试点 #11
Accepted
得分:100
用时:488 ms
内存:19020 KiB

输入文件(11.in

30 30
##.....#.......#.....##...#@..
.......#.##.##..#.#.####.##...
.##......#..#.#.......#.....#.
.
<835 bytes omitted>

答案文件(11.out

130

用户输出

130

系统信息

Exited with return code 0
测试点 #12
Accepted
得分:100
用时:203 ms
内存:11512 KiB

输入文件(12.in

30 30
...#..###.....##.#....#...##..
#.#...#..#.#..#..#.######..##.
.##..#.@.#......##...#....#.#.
.
<835 bytes omitted>

答案文件(12.out

154

用户输出

154

系统信息

Exited with return code 0
测试点 #13
Accepted
得分:100
用时:480 ms
内存:21324 KiB

输入文件(13.in

30 30
..#...#...#...#........#....##
#.##....##.@#.#.#.#.#..@......
#.....#..@....#..#..##.#..#..#
.
<835 bytes omitted>

答案文件(13.out

114

用户输出

114

系统信息

Exited with return code 0
测试点 #14
Accepted
得分:100
用时:4 ms
内存:360 KiB

输入文件(14.in

30 30
#.######.##.####.#######.#####
##.@####.######.#########.##.#
...######.########.########.##
#
<835 bytes omitted>

答案文件(14.out

-1

用户输出

-1

系统信息

Exited with return code 0
测试点 #15
Accepted
得分:100
用时:5 ms
内存:272 KiB

输入文件(15.in

30 30
########.###.###.###.###.##.##
######.####..#.###.###########
########.####.#########.######
.
<835 bytes omitted>

答案文件(15.out

11

用户输出

11

系统信息

Exited with return code 0