혼종 꼬지마루
[백준] 3980 - 선발 명단 본문
간만에 원큐에 푼 문제라 기분이 너무 좋다...
그냥 재귀로 싹다 돌려줘도 되는 문제
물론 전체 포지션을 다 고려한다고 했을 경우에는 O(11^11)이라 밥먹고 오면 풀릴 시간이지만
문제 조건이 '한명당 적합한 포지션은 최대 5개'라는 조건이 붙어 있어서 O(5^11) 까지 줄어드는 문제
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 | #include <iostream> #define SIZE 13 using namespace std; int S[SIZE][SIZE]; bool check[SIZE]; int C, dab; void dfs(int d, int sum) { if (d == 11) { dab = dab > sum ? dab : sum; return; } for (int i = 0; i < 11; i++) { if (check[i] || !S[d][i]) continue; check[i] = true; dfs(d + 1, sum + S[d][i]); check[i] = false; } } int main(void) { cin >> C; while (C--) { dab = 0; for (int i = 0; i < 11; i++) { check[i] = false; for (int j = 0; j < 11; j++) cin >> S[i][j]; } dfs(0, 0); cout << dab << "\n"; } return 0; } | cs |
'Algorithms > Brute Force' 카테고리의 다른 글
[백준] 18192 - 보고 정렬 (0) | 2019.12.15 |
---|---|
[백준] 17136 - 색종이 붙이기 (6) | 2019.04.07 |
[백준] 1421 - 나무꾼 이다솜 (0) | 2018.08.27 |