Algorithm/BOJ
-
플로이드 - 11404Algorithm/BOJ 2020. 3. 3. 19:05
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 //11404 - 플로이드 #include using namespace std; #define INF 100000000 int N, M; int arr[101][101]; void init() { cin >> N >> M; for(int i = 1; i y >> r; arr[x][y] = min(arr[x][y], r); } for (int k = 1; k
-
섬의 개수 - 4963Algorithm/BOJ 2020. 3. 3. 18:38
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 //4963 - 섬의 개수 #include #include using namespace std; int N, M; int arr[50][50]; int sN; int xarr[8] = {-1, -1, -1, 0, 1, 1, 1, 0}; int yarr[8] = {-1, 0, 1, 1, 1, 0, -1, -1}; struct Disjoi..
-
행렬 곱셈 순서 - 11049Algorithm/BOJ 2020. 3. 3. 17:12
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 //11049 - 행렬 곱셉 순서 #include #include using namespace std; #define INF INT32_MAX int N; int R[500]; int C[500]; int cache[500][500]; void init() { cin >> N; for(int i = 0; i> R[i] >> C[i]; for(int i = 0; i
-
파일 합치기 - 11066Algorithm/BOJ 2020. 3. 2. 18:41
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 //11066 - 파일 합치기 #include using namespace std; #define INF 100000000 int N; int arr[500]; int sub[500]; int dp[500][500]; //Kruth's optimization를 위한 배열 int num[500][500]; void init() { cin >> N; for(int i = 0; i
-
가장 긴 바이토닉 부분 수열 - 11054Algorithm/BOJ 2020. 3. 1. 20:10
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 //11054 - 가장 긴 바이토닉 부분 수열 #include using namespace std; int N; int arr[1000]; int cache[1000]; int cache2[1000]; void init() { cin >> N; for (int i = 0; i > arr[i]; } } int dp(int idx) { int &ret = cache[idx]; if (ret != -1) return ret; ret = 0;..
-
가장 큰 정사각형 - 1915Algorithm/BOJ 2020. 3. 1. 19:20
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 //1915 - 가장 큰 정사각형 #include using namespace std; int N, M; int arr[1000][1000]; int cache[1000][1000]; int ans; void init() { cin >> N >> M; char c; for (int i = 0; i c; arr[i][j] = c - '0'; cache[i][j] = -1; } ans = cache[0][0] = arr[0][0..