QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#636064#7034. HoneycombpskkkAC ✓116ms30840kbC++231.4kb2024-10-12 22:04:082024-10-12 22:04:09

Judging History

你现在查看的是最新测评结果

  • [2024-10-12 22:04:09]
  • 评测
  • 测评结果:AC
  • 用时:116ms
  • 内存:30840kb
  • [2024-10-12 22:04:08]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
const int dx[6] = {-1, 1, -1, 1, 2, -2};
const int dy[6] = {-3, 3, 3, -3, 0, 0};
void solve() {
    int n, m;
    cin >> n >> m;
    n = n * 4 + 3;
    m = m * 6 + 3;
    vector<string> a(n);
    getline(cin, a[0]);
    int sx, sy;
    for (int i = 0; i < n; ++i) {
        getline(cin, a[i]);
        for (int j = 0; j < m; j++)
            if (a[i][j] == 'S')
                sx = i, sy = j;
    }
    auto bfs = [&](auto self) -> int {
        queue<tuple<int, int, int>> Q;
        Q.push({sx, sy, 1});
        a[sx][sy] = '*';
        while (!Q.empty()) {
            int x, y, d;
            tie(x, y, d) = Q.front();
            Q.pop();
            for (int o = 0; o < 6; o++) {
                int cx = x + dx[o], nx = cx + dx[o];
                int cy = y + dy[o], ny = cy + dy[o];
                if (nx < 0 || ny < 0 || nx >= n || ny >= m || a[cx][cy] != ' ' || a[nx][ny] == '*')
                    continue;
                if (a[nx][ny] == 'T')
                    return d + 1;
                a[nx][ny] = '*';
                Q.push({nx, ny, d + 1});
            }
        }
        return -1;
    };
    cout << bfs(bfs) << endl;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int T = 1;
    cin >> T;
    while (T--) solve();
    return 0;
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3608kb

input:

1
3 4
  +---+       +---+
 /     \     /     \
+       +---+       +---+
 \           \     /     \
  +   +   S   +---+   T   +
 /     \     /           /
+       +---+       +   +
 \           \     /     \
  +---+       +---+       +
 /                       /
+       +---+       +   +
 \         ...

output:

7

result:

ok single line: '7'

Test #2:

score: 0
Accepted
time: 76ms
memory: 4144kb

input:

400
67 89
  +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       ...

output:

91
132
8
71
57
51
83
151
400
67
9
3
196
597
33
212
49
29
527
20
23
51
280
22
40
91
541
33
488
125
13
357
263
220
47
182
293
254
11
82
97
39
176
15
65
13
65
75
32
9
60
77
152
14
69
110
45
555
191
173
109
207
7
225
232
97
108
326
118
79
78
414
222
44
31
58
47
228
32
48
15
133
521
350
242
85
201
48
105...

result:

ok 400 lines

Test #3:

score: 0
Accepted
time: 114ms
memory: 30840kb

input:

2
1000 1000
  +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+     ...

output:

825
1889

result:

ok 2 lines

Test #4:

score: 0
Accepted
time: 69ms
memory: 4004kb

input:

200
97 97
  +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       +---+       ...

output:

72
153
63
38
132
33
99
108
96
126
47
124
64
28
156
173
83
30
126
118
102
155
210
214
45
75
115
163
172
91
115
71
76
260
107
71
73
80
61
117
116
68
153
139
95
47
209
119
135
162
180
170
174
69
52
133
110
278
66
41
7
78
53
77
144
132
49
135
215
63
99
41
32
107
285
87
53
191
115
51
286
159
124
173
138
...

result:

ok 200 lines

Test #5:

score: 0
Accepted
time: 116ms
memory: 3868kb

input:

10000
198 2
  +---+
 /     \
+       +---+
 \           \
  +---+       +
 /     \     /
+       +---+
 \           \
  +   +       +
 /           /
+       +   +
 \           \
  +   +       +
 /           /
+       +   +
 \           \
  +   +       +
 /           /
+       +   +
 \           \
  ...

output:

-1
28
33
5
37
-1
24
-1
25
23
74
58
42
71
14
4
35
24
77
25
15
8
3
55
-1
48
70
11
-1
83
25
47
14
57
83
12
-1
14
23
34
12
-1
11
47
-1
18
54
36
6
37
72
-1
13
14
39
89
62
42
47
19
36
14
9
20
35
74
29
88
86
16
9
47
-1
58
11
58
53
73
55
38
46
8
26
26
18
35
6
15
-1
22
20
34
33
27
83
85
39
50
9
57
51
58
9
47...

result:

ok 10000 lines