본문 바로가기

알고리즘/DP89

9465 스티커 12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include #include #include using namespace std; int arr[3][100005] = { 0 };int dp[3][100005] = { 0 }; int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); for (int i = 1; i 2019. 7. 7.
11057 오르막수 1234567891011121314151617181920212223242526#include int dp[1005][15] = { 0 }; int main() { int n; scanf("%d", &n); for (int i = 0; i = j; k--) { dp[i][j] += dp[i - 1][k] % 10007; } } } int rst = 0; for (int i = 0; i 2019. 7. 7.
1699 제곱수의 합 1234567891011121314151617181920#include #include using namespace std; int dp[100005] = { 0 }; int main() { int n; scanf("%d", &n); for (int i = 1; i 2019. 7. 7.
11055 가장 큰 증가 부분 수열 1234567891011121314151617181920212223242526272829303132#include #include using namespace std; int arr[1005] = { 0 };int dp[1005] = { 0 };int sum[1005] = { 0 }; int main() { int n; scanf("%d", &n); int rstL = 0, idx = -1; for (int i = 1; i 2019. 7. 7.
11051 이항계수2 1234567891011121314151617181920#include int prev[10005] = { 0 };int cur[10005] = { 0 }; int main() { int n, k; scanf("%d %d", &n, &k); prev[1] = 1; for (int i = 2; i 2019. 7. 7.
11722 가장 긴 감소하는 부분 1234567891011121314151617181920212223242526272829#include int arr[1005] = { 0 };int dp[1005] = { 0 }; int main() { int n; scanf("%d", &n); for (int i = 1; i 2019. 7. 7.
2293 동전1 12345678910111213141516171819202122#include int coin[105] = { 0 };long long dp[10005] = { 0 }; int main() { int n, k; scanf("%d %d", &n, &k); for (int i = 1; i 2019. 7. 6.
11048 이동하기 12345678910111213141516171819202122232425262728#include #include using namespace std; int arr[1005][1005] = {0};int dp[1005][1005] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); for (int i = 1; i = 1; i--) dp[n][i] = arr[n][i] + dp[n][i + 1]; for (int i = n; i >= 1; i--) for (int j = m; j >= 1; j--) dp[i - 1][j - 1] = arr[i - 1][j - 1] + max(dp[i - 1][j], dp[i][j - 1]); printf("%d", dp[.. 2019. 7. 6.
6359 만취한 상범 1234567891011121314151617181920212223242526272829#include int check[105]; int main() { int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); for (int i = 1; i 2019. 7. 6.
9507 Generations of Tribbles 1234567891011121314151617181920212223242526272829#include long long dp[75] = { 0 };int arr[75] = { 0 }; int main() { int t; scanf("%d", &t); int maxN = 0; for (int i = 1; i 2019. 7. 6.
2698 인접한 비트의 갯수 12345678910111213141516171819202122232425262728293031323334353637383940#include int arr[1005][2] = { 0 };int dp[105][105][2] = { 0 }; int main() { int t; scanf("%d", &t); int maxN = 0, maxK = 0; for (int i = 1; i 2019. 7. 6.
11726 2*n 타일링 12345678910111213141516#include int dp[1005] = { 0 }; int main() { int n; scanf("%d", &n); dp[0] = 1; dp[1] = 1; for (int i = 2; i 2019. 7. 6.