검색결과 리스트
DP에 해당되는 글 3건
- 2016.11.12 1301] 비즈공예
- 2016.09.25 2306] 유전자
- 2016.05.07 1328] 고층 빌딩 , 8895] 막대 배치
글
문제 설명
: 개수가 정해진 색깔이 다른 구슬들을 일렬로 배치하면서, 연속된 3개의 구슬에는 중복이 일어나지 않게하는
경우의 수를 구하는 문제이다.
7차원 dp로 해결이 가능하다, 5차원은 각 구슬의 사용 개수를 의미하고 나머지 2차원은 이전과 그 이전에 놓인
구슬의 종류를 의미한다.
소스 코드
'BOJ' 카테고리의 다른 글
3683] 고양이와 개 (2) | 2016.11.21 |
---|---|
1937] 욕심쟁이 판다 (0) | 2016.10.14 |
2306] 유전자 (0) | 2016.09.25 |
8992] 집기 게임(Pickup Game) (1) | 2016.09.21 |
8462] 배열의 힘 & Mo's Algorithm (0) | 2016.08.20 |
설정
트랙백
댓글
글
문제 설명
: 문자열 중에 길이 0 이상의 부분 문자열들을 제거해서 최대 길이의 KOI 유전자를 만드는 문제이다.
당연히도, 동적계획법 문제이다. 무엇을 제거하냐에 따라서 KOI 유전자가 달라지기 때문이다.
해결 방법은 두가지이다. 양끝이 a,t 이거나 g,c인 경우를 보거나, 인접한 a,t와 g,c를 보면 된다.
예를 들자면 aatt와 atat가 있다. 전자의 경우 안쪽에서부터 보면 되는 경우이고, 후자의 경우 바깥쪽에서부터
봐야하는 경우이다.
즉, dp(i,j) = 2 + dp(i-1,j-1) ( 만약 a[i],a[j]가 각각 a,t이거나 g,c인 경우 )
그리고 양쪽에서 보지 않았을 경우 가능한 경우들을 모두 잘라내서 보는 후자의 경우 또한 봐주여야 한다.
dp(i,j) = max(dp(i,j), dp(i,k) + dp(k+1,j)) ( i<=k<j )
소스 코드
'BOJ' 카테고리의 다른 글
1301] 비즈공예 (0) | 2016.11.12 |
---|---|
1937] 욕심쟁이 판다 (0) | 2016.10.14 |
8992] 집기 게임(Pickup Game) (1) | 2016.09.21 |
8462] 배열의 힘 & Mo's Algorithm (0) | 2016.08.20 |
1941] 소문난 칠공주 (0) | 2016.08.14 |
설정
트랙백
댓글
글
문제 설명
: 길이가 1,2.....N인 N개의 빌딩(막대)을 왼쪽에서는 L개, 오른쪽에서는 R개 보이도록 놓는 문제이다.
간단한 DP문제이다. 먼저 상태공간을 잡는 것이 중요한데, dp[i][l][r] 이라 하면 i번째 막대를 놓았을때
왼쪽에서 l개가 보이고 오른쪽에서 r개가 보이는 경우의 수이다.
먼저 1개를 놓아서 왼쪽,오른쪽 둘다 1개씩 보이는 경우와 2개를 놓았는데 왼쪽에 2개 오른쪽에 1개가 보이거나 왼쪽에 1개 오른쪽에 2개가 보이는 경우는 모두 1가지씩 이므로 dp[1][1][1] = dp[2][2][1] = dp[2][1][2] = 1 이다.
빌딩(막대)을 큰 것부터 즉, 내림차순으로 놓는다고 하면 i-1개를 다 놓고 나서 i번째에 왼쪽에 1개를 놓게되면
왼쪽에서는 1개가 더 보이게 되고, 오른쪽에서는 그대로 보이게 된다.
즉, dp[i][l][r] += dp[i-1][l-1][r] 이고, 오른쪽에 대해서도 마찬가지로 dp[i][l][r] += dp[i-1][l][r-1] 이다.
중요한것은 사이사이에 넣는 경우인데, 내림차순으로 놓는다면 사이에 넣는 경우에 왼쪽이나 오른쪽에서 보이는
개수는 그대로이기 때문에 ( 예를들어 5 4 가 있는데 5 3 4 처럼 3을 가운데에 넣는다면 여전히 왼쪽, 오른쪽에서는 한개씩 보인다) i개가 놓여져 있다면, 사이사이에는 i-2 경우의 수만큼 넣을 수 있다.
즉, 마지막으로 dp[i][l][r] += dp[i-1][l][r] * (i-2).
연산마다 모드를 취해주면 쉽게 답을 얻을 수 있다.
소스 코드
'BOJ' 카테고리의 다른 글
1941] 소문난 칠공주 (0) | 2016.08.14 |
---|---|
1052] 물병 (0) | 2016.07.22 |
1007] Vector Matching (0) | 2016.01.01 |
1707] 이분 그래프 (0) | 2016.01.01 |
1238] Silver Cow Party (파티) (0) | 2015.12.30 |
RECENT COMMENT