티스토리 뷰
백준 :: BOJ :: 15686 :: 치킨 배달
출처 : https://www.acmicpc.net/problem/15686
#include <bits/stdc++.h>
using namespace std;
struct s {
int r, c, ch;
};
int N, M, tmp, ans;
vector <s> h, c;
vector<int>a;
vector<vector<int>> hh;
void dfs(int n, int ii) {
if (n == M) {
int r = 0;
for (int i = 0; i < h.size(); i++) {
int rr = 1e9;
for (int j = 0; j < a.size(); j++) {
rr = min(rr, hh[i][a[j]]);
}
r += rr;
}
ans = min(ans, r);
return;
}
for (int i = ii; i < c.size(); i++) {
a.push_back(c[i].ch); dfs(n+1, i + 1); a.pop_back();
}
return;
}
int main() {
std::ios::sync_with_stdio(false); cin.tie(0);
cin >> N >> M; ans = 1e9;
int cnt = 0;
for (int i = 1; i <= N; i++) for (int j = 1; j <= N; j++) {
cin >> tmp;
if (tmp == 1) h.push_back({ i,j,0 });
else if (tmp == 2) c.push_back({i,j,cnt++});
}
hh.resize(h.size());
int r = 0;
for (int i = 0; i < h.size(); i++) for (int j = 0; j < c.size(); j++)
hh[i].push_back(abs(h[i].c - c[j].c) + abs(h[i].r - c[j].r));
dfs(0,0);
cout << ans;
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 16236] 아기 상어 (0) | 2019.01.09 |
---|---|
[BOJ 5373] 큐빙 (2) | 2018.10.25 |
[BOJ 15685] 드래곤 커브 (0) | 2018.10.07 |
[BOJ 14499] 주사위 굴리기 (0) | 2018.10.04 |
[BOJ 7576] 토마토 (0) | 2018.10.02 |
- Total
- Today
- Yesterday
- STL
- DFS
- 17779
- 연구소 3
- boj
- 트렌드
- 입출력
- 미세먼지 안녕!
- 17144
- 팁
- 17142
- 게리맨더링 2
- hackerrank
- 이차원 배열과 연산
- 2018 KAKAO BLIND RECRUITMENT
- 17837
- SW Expert Academy
- 시간 복잡도
- 백준
- 2018 카카오 블라인드 채용
- DP
- 알고리즘
- 17140
- 삼성
- string
- scanf
- 17143
- 역량 테스트
- 새로운 게임 2
- SWEA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |