Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 완전탐색
- 다이나믹프로그래밍
- backtracking
- 분리집합
- 문자열
- 종만북
- 분할정복
- 너비우선탐색
- 스택
- 알고리즘문제해결전략
- Algospot
- Greedy
- acm
- union-find
- 백트래킹
- 유니온파인드
- 알고스팟
- 동적계획법
- DP
- 세그먼트트리
- 백준
- BOJ
- BFS
- 누적합
- 재귀
- stack
- 그리디
- DFS
- 이분탐색
- priority_queue
Archives
- Today
- Total
DAMPER's 낙서장
14889 스타트와 링크 본문
728x90
14889번: 스타트와 링크
예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다.
www.acmicpc.net
<아이디어>
N/2 명씩 두팀을 만들기 위해 check vector로 true면 A팀, false면 B팀으로 정합니다.
팀을 이룰 때는 순서에 상관없이 선택합니다.
재귀적으로 팀을 선택한 뒤, 정지조건(N/2명을 골랐을 때)을 만족하면, 팀의 점수를 계산합니다.
점수 계산은 이중 for문으로 완전탐색합니다.
점수차의 최솟값을 계산하여 출력합니다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#include <bits/stdc++.h>
using namespace std;
#define swap(a,b) (a)^=(b)^=(a)^=(b)
#define endl '\n'
typedef long long lld;
int sum = INT_MAX;
void choice(int n, int pos, vector<vector<int>>& v, vector<bool>& check, int k)
{
if(pos==n/2)
{
int asum = 0, bsum = 0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i==j) continue;
else if(check[i]==check[j])
{
if(check[i]) asum += v[i][j];
else bsum += v[i][j];
}
}
}
sum = min(sum, abs(asum-bsum));
return ;
}
for(int i=k;i<n;i++)
{
if(!check[i])
{
check[i] = true;
choice(n, pos+1, v, check, i+1);
check[i] = false;
}
}
}
int main()
{
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
vector<vector<int>> v(n, vector<int> (n, 0));
vector<bool> check(n, false);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
cin>>v[i][j];
choice(n, 0, v, check, 0);
cout<<sum;
return 0;
}
|
cs |
728x90
'Problem Solving > BOJ 문제풀이' 카테고리의 다른 글
5525 IOIOI (0) | 2021.01.11 |
---|---|
1992 쿼드트리 (0) | 2021.01.11 |
7662 이중 우선순위 큐 (0) | 2021.01.08 |
1541 잃어버린 괄호 (0) | 2021.01.05 |
11687 팩토리얼 0의 개수 (0) | 2021.01.04 |