본문 바로가기

나는 오늘,

(371)
스도쿠 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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..
빵집 *true면 파이프 설치 가능함. 아니면 가능하지 않는 구간 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 74 #include #include #include #define MAXR 10001 #define MAXC 501 using namespace std; int r, c, ans = 0; char map[MAXR][MAXC]; bool visited[MAXR][MAXC]; ..
수2 *n이 luckey set에 들어가면 어떤 구간도 성립될 수 없다. 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 //수2 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int l, n; cin >> l; int nums[51] = {0}; bool isLucky[1001] = {0}; for (int i = 1; i > nums[i]; isLucky[nums[i]] = true; } cin >> n; if..
연속합 *숫자 한개 이상은 반드시 선택해야 한다. 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 #include #include #define MAXX 100001 using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; int nums[MAXX] = {0}; int total = -987654321; cin >> n; int min = 987654321; for (int i = 1; i > nums[i]; } int dp[MAXX][2] = {{0}}; //자신이 선택되었을 때와 아닐..
물통 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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 #include #include #include #include #define MAXX 201 using namespace std; typedef pair pp; typ..
터보소트 -홀수번째의 경우 고를 수 있는 수 중 가장 작은 수를 찾아서 앞으로 이동시켜야 하고 -짝수번째의 경우 고를 수 있는 수 중 가장 큰 값을 찾아서 앞으로 이동해야한다. -이동 횟수를 내 앞 혹은 내 뒤에서 나까지의 인덱스 중 1의 개수를 세면 내가 이동해야 하는 횟수이다. 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 #include #include #include #include #define MAXX 100001 using nam..
공장 쌍이 될 수 있는 전선은 내 앞의 인덱스들이 가지고 있는 전선만큼이다. 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 #include #include #define MAXX 500001 #define MAXXX 1000001 using namespace std; typedef long long ll; int n; int num[MAXXX], arr[MAXX], tree[MAXX]; void update(int idx, int diff) { while(idx 0) {..
벽 부수고 이동하기2 *dfs는 시간초과 (전수조사를 하면 안됨) *벽을 부순 횟수를 visited에 기록해서 한 번 갔던 곳도 최단경로가 된다면 다시 갈 수 있도록 해야한다. 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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105..