일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 순서대로방문하기
- ICER
- 코드트리빵
- 왕실의기사대결
- 루돌프의반란
- 코드트리
- 소프티어
- DenseDepth
- BFS
- 삼성기출
- 조합
- dfs
- 토끼와 경주
- ros
- 3Dreconstruction
- 수영대회결승전
- ARM
- 마이크로프로세서
- 나무박멸
- 구현
- 백준
- 이진탐색
- 싸움땅
- ISER
- 슈퍼컴퓨터클러스터
- 시뮬레이션
- 마법의숲탐색
- Calibration
- 포탑부수기
- DP
- Today
- Total
목록조합 (2)
from palette import colorful_colors
접근방법1. 조합짜기먼저 주사위 중 A가 굴릴 주사위를 정할 조합을 짠다. 그러면 B가 굴릴 주사위도 자동으로 정해진다.A가 선택한 주사위는 aSelected가 1이고, B가 선택한 주사위는 aSelected가 0이다. → 재귀 이용, makePath 함수 2. 해당 조합마다 굴리는 경우 구하기A가 굴리는 주사위의 합, B가 굴리는 주사위 합만 알면 되므로, (6^N) 이 아닌 (6^N/2) 를 두 번 구해주면 된다.굴리는 주사위의 합들을 각각의 DAT에 저장하고, 나중에 비교를 위해 합이 나오는 경우의 수를 aCase, bCase에 저장한다. → 재귀 이용, roll함수 3. 해당 조합에서 A가 이기는 경우의 수 구하기 비교시 시간복잡도를 줄이기 위해 aCase, bCase를 오름차순 정렬, 중복..
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 언어: C++, 시간: 52ms 2차원 격자에서 조합을 이용한 대표적인 문제. 사실 조합을 안 쓰고 그냥 순열로 벽을 세우는걸 생각해도 된다. 하지만 그러면 굉장히 느려진다. (나의 경우 52ms -> 332ms) DFS를 통해서 벽을 세우고, 벽을 다 세우면 BFS를 이용해서 바이러스 퍼뜨렸다. 꼭 복습하기! #define _CRT_SECURE_NO_WARNINGS #include #include #incl..