QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#54152 | #2925. Parking Lot | Beevo | AC ✓ | 662ms | 10724kb | C++23 | 2.6kb | 2022-10-07 07:20:31 | 2022-10-07 07:20:32 |
Judging History
answer
#include <bits/stdc++.h>
#define el '\n'
#define ll long long
#define Beevo ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const int N = 52, INF = 1e9;
const double eps = 1e-9;
int dcmp(const double &a, const double &b){
if(fabs(a - b) < eps)
return 0;
return (a > b ? 1 : -1);
}
struct Point
{
int x;
int y;
};
int r, c;
bool arr[N][N];
bool vis[N][N];
double dp[N][N];
bool can[N][N][N][N];
void pre() {
for (int i = 0; i <= r; i++) {
for (int j = 0; j <= c; j++) {
for (int a = i; a <= r; a++) {
for (int b = j; b <= c; b++) {
if (i == a || j == b)
continue;
double m = (double)(b - j) / (a - i), d = (double)j - m * i;
int cur = j;
for (int row = i + 1; row <= a; row++) {
while (cur <= b && dcmp(m * row + d, cur) == 1)
cur++;
if (dcmp(m * row + d, cur) != 1 && arr[row - 1][cur - 1])
can[i][j][a][b] = 1;
}
cur = i;
for (int col = j + 1; col <= b; col++) {
while (cur <= a && dcmp((double)(col - d) / m, cur) == 1)
cur++;
if (dcmp((double)(col - d) / m, cur) != 1 && arr[cur - 1][col - 1])
can[i][j][a][b] = 1;
}
}
}
}
}
}
double dist(int x, int y, int x2, int y2) {
return sqrt((x2 - x) * (x2 - x) + (y2 - y) * (y2 - y));
}
double solve(int x, int y) {
if (x == r && y == c)
return 0;
double &ret = dp[x][y];
if (vis[x][y])
return ret;
vis[x][y] = 1;
ret = INF;
for (int i = x; i <= r; i++) {
for (int j = y; j <= c; j++) {
if (i == x && j == y || can[x][y][i][j])
continue;
ret = min(ret, dist(x, y, i, j) + solve(i, j));
}
}
return ret;
}
void testCase() {
cin >> r >> c;
char x;
for (int i = 0; i < r; i++) {
for (int j = 0; j < c; j++) {
cin >> x;
if (x == '#')
arr[i][j] = 1;
}
}
pre();
cout << fixed << setprecision(9) << solve(0, 0);
}
signed main() {
Beevo
int T = 1;
// cin >> T;
while (T--)
testCase();
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 3896kb
input:
1 1 .
output:
1.414213562
result:
ok found '1.4142136', expected '1.4142136', error '0.0000000'
Test #2:
score: 0
Accepted
time: 2ms
memory: 3792kb
input:
1 1 #
output:
2.000000000
result:
ok found '2.0000000', expected '2.0000000', error '0.0000000'
Test #3:
score: 0
Accepted
time: 2ms
memory: 3724kb
input:
1 3 .#.
output:
3.414213562
result:
ok found '3.4142136', expected '3.4142136', error '0.0000000'
Test #4:
score: 0
Accepted
time: 1ms
memory: 3728kb
input:
1 3 ##.
output:
3.414213562
result:
ok found '3.4142136', expected '3.4142136', error '0.0000000'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3756kb
input:
2 3 .#. .#.
output:
3.828427125
result:
ok found '3.8284271', expected '3.8284271', error '0.0000000'
Test #6:
score: 0
Accepted
time: 2ms
memory: 3820kb
input:
2 6 #..#.# #.#..#
output:
6.472135955
result:
ok found '6.4721360', expected '6.4721360', error '0.0000000'
Test #7:
score: 0
Accepted
time: 1ms
memory: 3868kb
input:
6 5 .#### #...# #.##. #.### ##... ####.
output:
8.226772762
result:
ok found '8.2267728', expected '8.2267728', error '0.0000000'
Test #8:
score: 0
Accepted
time: 3ms
memory: 4116kb
input:
12 10 ########## ########## ###....### ########## #..####..# ###....### #######.## ...####### ###....### #######..# ###....### ##########
output:
18.944271910
result:
ok found '18.9442719', expected '18.9442719', error '0.0000000'
Test #9:
score: 0
Accepted
time: 380ms
memory: 3832kb
input:
50 50 .................................................. .................................................. .................................................. .................................................. .................................................. ..........................................
output:
70.710678119
result:
ok found '70.7106781', expected '70.7106781', error '0.0000000'
Test #10:
score: 0
Accepted
time: 13ms
memory: 3792kb
input:
13 47 ............................................... ............................................... ............................................... ............................................... ............................................... ............................................... .........
output:
48.764741361
result:
ok found '48.7647414', expected '48.7647414', error '0.0000000'
Test #11:
score: 0
Accepted
time: 373ms
memory: 10660kb
input:
50 50 ################################################## ################################################## ################################################## ################################################## ################################################## #######################################...
output:
100.000000000
result:
ok found '100.0000000', expected '100.0000000', error '0.0000000'
Test #12:
score: 0
Accepted
time: 16ms
memory: 5476kb
input:
47 13 ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ############# ...
output:
60.000000000
result:
ok found '60.0000000', expected '60.0000000', error '0.0000000'
Test #13:
score: 0
Accepted
time: 2ms
memory: 3752kb
input:
49 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
output:
49.010203019
result:
ok found '49.0102030', expected '49.0102030', error '0.0000000'
Test #14:
score: 0
Accepted
time: 2ms
memory: 3980kb
input:
49 1 . . # # # . . . . . # # # # # # # # # # . . . . # . . . . # # # . # # . . # # # # # . # # . . . .
output:
49.099019514
result:
ok found '49.0990195', expected '49.0990195', error '0.0000000'
Test #15:
score: 0
Accepted
time: 3ms
memory: 3724kb
input:
3 45 ............................................. ............................................. .............................................
output:
45.099889135
result:
ok found '45.0998891', expected '45.0998891', error '0.0000000'
Test #16:
score: 0
Accepted
time: 3ms
memory: 4144kb
input:
3 45 ###..####.##.#.#.##..#.#############...##.### ##.###..#.##.#.##.#.#...#.......#...##..###.# ###...##..##........#..###.#...#..#.#.....#..
output:
45.406155303
result:
ok found '45.4061553', expected '45.4061553', error '0.0000000'
Test #17:
score: 0
Accepted
time: 401ms
memory: 8572kb
input:
50 50 .................................................. ........#......................................... .................................................. .................................................. .................................................. ..........................................
output:
70.710678119
result:
ok found '70.7106781', expected '70.7106781', error '0.0000000'
Test #18:
score: 0
Accepted
time: 15ms
memory: 4152kb
input:
13 47 ......................................#........ ............................................... ...........#.....#............................. ............................................... ............................................... ............................................... .........
output:
48.764741361
result:
ok found '48.7647414', expected '48.7647414', error '0.0000000'
Test #19:
score: 0
Accepted
time: 189ms
memory: 7868kb
input:
40 46 .............................................. ......................#................#...... ...........................#.................. ............#................................. .............................................. .............................................. ...............
output:
60.959002617
result:
ok found '60.9590026', expected '60.9590026', error '0.0000000'
Test #20:
score: 0
Accepted
time: 449ms
memory: 10340kb
input:
50 50 ........................#......................... .......#.......#....#.........#.............#..... ...............#.................................. .........#...........#................#..#........ ....#........#............................#....##. ....#.....#....................#.#........
output:
70.981171950
result:
ok found '70.9811720', expected '70.9811719', error '0.0000000'
Test #21:
score: 0
Accepted
time: 20ms
memory: 5212kb
input:
47 13 ..........#.. ............. ............. ..........#.. ....#....#... ...##........ ...#......#.. ............. ............. ............. ............. ............. ...........#. ............. ........#.... ............. ............. ........#.... ........#..#. ............. ............. ...
output:
48.772481299
result:
ok found '48.7724813', expected '48.7724813', error '0.0000000'
Test #22:
score: 0
Accepted
time: 221ms
memory: 8584kb
input:
40 46 .......#...........#.#.......#................ .#..............................#........#.... ...........................#..............#... ..............#............................... .....................................#.......# .#..........................#...........#..... .......#.......
output:
61.131208711
result:
ok found '61.1312087', expected '61.1312087', error '0.0000000'
Test #23:
score: 0
Accepted
time: 662ms
memory: 10480kb
input:
50 50 .#...###.#..#.#.....#.#..###..#.#..#.....###.##.#. ####..###..#...##..######.##..#####..##.###..##.## #####..#..###..##..#.#..#.##...#.#####.##..#####.# ....##....#.#####.#.##.##....#.###.#...#.#.##.##.# ##.....#.##.########..##..#....#.##..#.##.##...#.. ###.#..##.##.#####.##..##.#.#.#.#.#..##...
output:
74.464129641
result:
ok found '74.4641296', expected '74.4641296', error '0.0000000'
Test #24:
score: 0
Accepted
time: 401ms
memory: 9136kb
input:
47 43 #.#...#.#...##.#.##.##.#.#....#.####.#..#.. .####....#..#..#..#.#...####...#.#.......## .#.#####.#..#..#..#####.#####.#.#.###..##.# .###.#####.#....######...#.#.#.#..##.###... .#.###.......#..#####..#######..#..#....#.# #..####..#.##.#..#..##.#.#.###.####.###.#.. .#.##.#####.#.##.##..##.#.##.....
output:
67.730078557
result:
ok found '67.7300786', expected '67.7300786', error '0.0000000'
Test #25:
score: 0
Accepted
time: 441ms
memory: 9444kb
input:
44 48 ##....###...#.#..##....###..##.##.....###.###... #..##..#..#........###.###....##.##..##...#.###. .#....###...#.......#.###..##..##...#.####.#.... .#.#.###...#.#..#..###..##....###..####....#.#.. ...#.#.#...##..#..###.###.#.#..#...#.###..##.#.. ##.#.###...####.#..#..#####.##..#.##.##......... ...
output:
69.059701689
result:
ok found '69.0597017', expected '69.0597017', error '0.0000000'
Test #26:
score: 0
Accepted
time: 571ms
memory: 10480kb
input:
50 50 ..#.####..#.##########..#######.####.#.#.######### ....#####.##..#########.#######.##.##..##.####..#. ##.#####.##.#.###.##..#.#.#####..#######.###.##### .##..######..#.########.#..######..######.######.# ##.#################.#####.##..##.########.####### ###.#.#..##.#########.#.###.####.##.###...
output:
81.587028630
result:
ok found '81.5870286', expected '81.5870286', error '0.0000000'
Test #27:
score: 0
Accepted
time: 591ms
memory: 10500kb
input:
50 50 #####.#######.##..#...########..#####.###..###.#.# ###.#####.#.##....#....#.###.#####.###.###.##.##.# ..#.######..#..##..#..######.####.#.#########..##. #####..####.###.##.########.#.###########.###.###. ###.#######.###....##########..###.##.#.###.#..### .##..##.##.###.##.#########.#.###.#####...
output:
80.710134255
result:
ok found '80.7101343', expected '80.7101343', error '0.0000000'
Test #28:
score: 0
Accepted
time: 582ms
memory: 10496kb
input:
50 50 #..#####..######..##.#####.###########.##.###.###. #.######.##.###.##.####.###.#####.###.#.##...##### #########.##..##.####...#.##########.#####.####### ########...#..#..#####.##.#####.##.###.#..#######. .##############.######..###.#..#####.######.####.# ##.##.#.###.##.#.#####.#..##.###.##.###...
output:
81.335092728
result:
ok found '81.3350927', expected '81.3350927', error '0.0000000'
Test #29:
score: 0
Accepted
time: 572ms
memory: 10624kb
input:
50 50 ##.########.#####################.#######..######. ###.#####.##.###.########...####..##########.#..## ##.#.##.##...##.###########.#####.####.##.######.# #..#####..###.#.##.######.##########.###.###.##### ###.####..########.#.######.###.####.########..### ######.##.#######.#######.#..######...#...
output:
80.722980040
result:
ok found '80.7229800', expected '80.7229800', error '0.0000000'
Test #30:
score: 0
Accepted
time: 478ms
memory: 10480kb
input:
50 50 #########.##########.##.############.#######.##### #########################.#######.########.####### ..###########.#######.#####.#######..#######.##.## ##########.##################.###################. ############.#########.################..#.####### #########.##########.######.##.########...
output:
86.733966568
result:
ok found '86.7339666', expected '86.7339666', error '0.0000000'
Test #31:
score: 0
Accepted
time: 490ms
memory: 10548kb
input:
50 50 ########..#############.###################..##### #######.############.############.#####.########## ###########.#########################..#####.##.## #####.###############.##################.#####.### ################..############..#########.######## #############################.######.##...
output:
86.941172206
result:
ok found '86.9411722', expected '86.9411722', error '0.0000000'
Test #32:
score: 0
Accepted
time: 484ms
memory: 10568kb
input:
50 50 #####..#.##.######.#########..#######.##..######## ###################...####################.######. .####.######.###########.#######################.# ################.##########.##..################.# ######.#.#################.#########.#########.#.# ##########..######.#############.######...
output:
86.400116033
result:
ok found '86.4001160', expected '86.4001160', error '0.0000000'
Test #33:
score: 0
Accepted
time: 473ms
memory: 10724kb
input:
50 50 .###############.#########.##.###.#########.###### #####.###..##############.###########.#.#########. ################.#####.##############.#######.#### #######..###.####################.#.#####.###..### #####.#.####.#####.####.#.######################.# #######.################.##.#####.##.##...
output:
86.400116033
result:
ok found '86.4001160', expected '86.4001160', error '0.0000000'
Test #34:
score: 0
Accepted
time: 404ms
memory: 10652kb
input:
50 50 ....############################################## ###.....########################################## #######.....###################################### ###########.....################################## ###############....############################### ###################.###################...
output:
74.291187074
result:
ok found '74.2911871', expected '74.2911871', error '0.0000000'
Test #35:
score: 0
Accepted
time: 409ms
memory: 10512kb
input:
50 50 .################################################# .################################################# ..################################################ #.################################################ #.################################################ #..####################################...
output:
74.860444267
result:
ok found '74.8604443', expected '74.8604443', error '0.0000000'
Test #36:
score: 0
Accepted
time: 409ms
memory: 10624kb
input:
50 50 .################################################# ..################################################ #..############################################### ##..############################################## ###..############################################# ####.##################################...
output:
72.680036434
result:
ok found '72.6800364', expected '72.6800364', error '0.0000000'
Test #37:
score: 0
Accepted
time: 418ms
memory: 10468kb
input:
50 50 .################################################# ..################################################ #.################################################ #..############################################### ##..############################################## ###.###################################...
output:
71.901173735
result:
ok found '71.9011737', expected '71.9011737', error '0.0000000'
Test #38:
score: 0
Accepted
time: 404ms
memory: 10468kb
input:
50 50 .################################################# .################################################# .################################################# .################################################# .################################################# .######################################...
output:
80.073847135
result:
ok found '80.0738471', expected '80.0738471', error '0.0000000'
Test #39:
score: 0
Accepted
time: 404ms
memory: 10484kb
input:
50 50 .################################################# ..################################################ #.################################################ #..############################################### ##.############################################### ##..###################################...
output:
76.602990073
result:
ok found '76.6029901', expected '76.6029901', error '0.0000000'
Test #40:
score: 0
Accepted
time: 421ms
memory: 10416kb
input:
50 50 ...############################################### ##....############################################ #####...########################################## ########...####################################### ##########....#################################### #############...#######################...
output:
76.784316010
result:
ok found '76.7843160', expected '76.7843160', error '0.0000000'
Test #41:
score: 0
Accepted
time: 397ms
memory: 10472kb
input:
50 50 .################################################# #.################################################ ##.############################################### ###.############################################## ####.############################################# #####.#################################...
output:
75.996520403
result:
ok found '75.9965204', expected '75.9965204', error '0.0000000'
Test #42:
score: 0
Accepted
time: 400ms
memory: 10620kb
input:
50 50 .################################################# #.################################################ ##.############################################### ###.############################################## ####.############################################# #####.#################################...
output:
72.574307362
result:
ok found '72.5743074', expected '72.5743074', error '0.0000000'
Test #43:
score: 0
Accepted
time: 414ms
memory: 10476kb
input:
50 50 .################################################# #.################################################ ##.############################################### ###.############################################## ####.############################################# #####.#################################...
output:
76.409090965
result:
ok found '76.4090910', expected '76.4090910', error '0.0000000'
Test #44:
score: 0
Accepted
time: 396ms
memory: 10548kb
input:
50 50 .################################################# #.################################################ ##.############################################### ###.############################################## ####.############################################# #####.#################################...
output:
73.436493747
result:
ok found '73.4364937', expected '73.4364937', error '0.0000000'
Test #45:
score: 0
Accepted
time: 415ms
memory: 10476kb
input:
50 50 .################################################# #.################################################ ##.############################################### ###.############################################## ####.############################################# #####.#################################...
output:
73.768178500
result:
ok found '73.7681785', expected '73.7681785', error '0.0000000'
Test #46:
score: 0
Accepted
time: 411ms
memory: 10544kb
input:
50 50 .################################################# #.################################################ #..############################################### ##..############################################## ###..############################################# ####..#################################...
output:
70.829147264
result:
ok found '70.8291473', expected '70.8291473', error '0.0000000'
Test #47:
score: 0
Accepted
time: 413ms
memory: 10488kb
input:
50 50 .################################################# #..############################################### ##..############################################## ###..############################################# ####..############################################ #####..################################...
output:
70.733748503
result:
ok found '70.7337485', expected '70.7337485', error '0.0000000'
Test #48:
score: 0
Accepted
time: 412ms
memory: 10624kb
input:
50 50 .################################################# #.################################################ #..############################################### ##..############################################## ###..############################################# ####..#################################...
output:
71.441202117
result:
ok found '71.4412021', expected '71.4412021', error '0.0000000'
Test #49:
score: 0
Accepted
time: 378ms
memory: 10416kb
input:
50 50 ........................########################## #######################........................### ###############################################.## ###############################################.## ###############################################.## #######################################...
output:
95.249234124
result:
ok found '95.2492341', expected '95.2492341', error '0.0000000'
Test #50:
score: 0
Accepted
time: 391ms
memory: 10464kb
input:
50 50 .............##################################### #############.............######################## ##########################.............########### #######################################.########## #######################################.########## #######################################...
output:
87.399548782
result:
ok found '87.3995488', expected '87.3995488', error '0.0000000'
Test #51:
score: 0
Accepted
time: 1ms
memory: 3816kb
input:
4 4 ..#. .#.# ###. .#..
output:
5.886349517
result:
ok found '5.8863495', expected '5.8863495', error '0.0000000'
Test #52:
score: 0
Accepted
time: 2ms
memory: 3796kb
input:
2 2 ## ##
output:
4.000000000
result:
ok found '4.0000000', expected '4.0000000', error '0.0000000'