Algorithm
-
비트베리 - 17374Algorithm/BOJ 2020. 7. 13. 15:44
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 //17374 - 비트베리 #include using namespace std; int tnum, P, Q, A, B, C, D; int ans; void init() { cin >> P >> Q >> A >> B >> C >> D; } int PtoCn() { int ret = P/(A+B); ret = max(B*ret, P-A*(ret+1)); return ret; } int CntoP(int cn) { int ret = cn/(A+B); ret = max(A*ret, cn-B*(ret+..
-
사탕 줍는 로봇 - 15892Algorithm/BOJ 2020. 7. 6. 15:53
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 //15892 - 사탕 줍는 로봇 #include #include #include using namespace std; int N, M; typedef struct edge { int..
-
세 용액 - 2473Algorithm/BOJ 2020. 4. 16. 13:08
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 //2473 - 세 용액 #include #include using namespace std; int N; long long ans; long long arr[5000]; long long target; int idx1, idx2, idx3; void init() { ans = 3000000000; cin >> N; for (int i = 0; ..
-
Segment with Lazy PropagationAlgorithm/세그먼트, 펜윅트리 2020. 4. 6. 12:01
Lazy Propagation 세그먼트 트리에서 구간을 업데이트 할때, 해당하는 모든 노드를 업데이트 해주는것은 최대 O(nlgn) 만큼 시간이 걸리는데 Lazy Propagation을 사용하면 O(lgn) 시간안에 업데이트를 할수 있습니다. 이를 위해 lazy라는 배열이 필요하고, lazy에는 해당 idx에 해당하는 트리의 노드에 업데이트 되어야 할 값이 들어가게 됩니다. https://www.acmicpc.net/problem/10999 10999번: 구간 합 구하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터..
-
소가 길을 건너간 이유 6 - 14466Algorithm/BOJ 2020. 4. 1. 16:59
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 //14466 - 소가 길을 건너간 이유 6 #include #include using namespace std; int N, K, R; int arr[100][100]; vector adj; bool isCow[10000]..
-
네트워크 연결 - 3780Algorithm/BOJ 2020. 4. 1. 14:19
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 //3780 - 네트워크 연결 #include #include using namespace std; int N; int Dist(int u, int v) { int ret = (u - v > 0 ? u - v : v - u); return ret % 1000; } struct DisjointSet { vector parent, dist; DisjointSe..