반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- centOS
- 네트워크
- kubernetes
- 프로세스
- 인프라
- 운영체제
- os
- 클라우드
- Python
- devops
- centOS7
- boj
- ios
- docker
- 데브옵스
- swift 클로저
- 리눅스
- 도커 명령어
- C++
- NGINX
- k8s
- AWS
- 쿠버네티스
- 부스트코스
- 컨테이너
- 도커 이미지
- 도커 컨테이너
- 도커
- linux
- Swift
Archives
- Today
- Total
귀염둥이의 메모
[백준] 14889번: 스타트와 링크 (C++) 본문
반응형
vis 배열에 스타트팀 인원들을 true로 표시하였고, 링크팀 인원들은 false이다.
각각의 모든 경우에 대해서 능력치 차이를 비교하여 차이의 최소를 구하였다.
소스코드
#include <bits/stdc++.h>
using namespace std;
int n;
int minimum = INT32_MAX;
int vis[21];
int stat[21][21];
void dfs(int k, int start) {
if (k == n / 2) {
int st = 0, lnk = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (vis[i] && vis[j]) st += stat[i][j]; // 스타트팀
else if (!vis[i] && !vis[j]) lnk += stat[i][j]; // 링크팀
}
}
minimum = (minimum < abs(st - lnk)) ? minimum : abs(st - lnk);
return;
}
for (int i = start; i <= n; i++) {
if (vis[i]) continue;
vis[i] = 1;
dfs(k + 1, i + 1);
vis[i] = 0;
}
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
cin >> stat[i][j];
dfs(0, 1);
cout << minimum;
return 0;
}
반응형
'CS > 백준' 카테고리의 다른 글
[백준] 14503번: 로봇 청소기 (C++) (0) | 2021.03.31 |
---|---|
[백준] 17144번: 미세먼지 안녕! (C++) (0) | 2021.03.30 |
[백준] 5014번: 스타트링크 (C++) (0) | 2021.03.29 |
[백준] 14500번: 테트로미노 (C++) (0) | 2021.03.28 |
[백준] 3190번: 뱀 (C++) (2) | 2021.03.28 |
Comments