일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MST
- 캘리그라피
- yolo
- 외판원 순회
- 이분탐색
- 평창동계올림픽
- 비트마스크
- BFS
- 안드로이드 스튜디오
- 다음 지도 api
- multiset
- 다음 API
- 영어회화 100일의 기적
- 그리디 알고리즘
- upper_bound
- Segment Tree
- 언어의 온도
- 성화봉송주자
- 삼성 코딩테스트
- lower_bound
- BOJ 2098
- DP
- 백트레킹
- boj
- 성화봉송
- 인간이 그리는 무늬
- 창훈쓰다
- 위상정렬
- 생활코딩
- 다이나믹 프로그래밍
- Today
- Total
Hoon222y
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include #include #include #include using namespace std;void init(vector &tree, vector &a, int node, int start, int end) { if (start == end) { tree[node] = a[start]; } else { init(tree, a, node*2, start, (start+end)/2); init(tree, a, node*2+1, (start+end)/2+1, end); ..
#include #include #include #include #include #include #include #include #include #include #include #include #define INF 1000000000 using namespace std; vector tree;vector a;vector lazy; int n, m, k; long long init(int node,long long x,long long y){ if (x == y) return tree[node] = a[x]; return tree[node] = init(node * 2, x, (x + y) / 2) + init(node * 2 + 1, (x + y) / 2 + 1, y);} void update_lazy(..
이분탐색의 경우에는 - 정렬되어진 리스트에서 어떤값을 빠르게 찾는 알고리즘으로서 - 리스트 혹은 배열의 크기를 N 이라고 했을 때 찾는데 logN 의 시간이 걸린다.이런식으로 작동이 되며 Left가 Right 보다 클 때 까지 계속적으로 반복을한다. 시간복잡도가 logN인 이유가 바로 절반으로 계속 나누어 주기 때문이다.참고 코드는 while (left x) { right = mid-1; } else { left = mid+1; } }을 참고하면 될 것이다.그런데 분명 이렇게 구현을 하다보면 까먹을 경우도 발생 할 것이다. 그렇다면 우리는 어떻게 해야할까 ... 바로 STL을 쓰는게 가장 간편 !!while (m--) { int num; scanf("%d",&num); printf("%d ",binary..
보통 dfs나 bfs를 하면 2차원 배열상에서 이동하는 경우가 생기는데 그때마다 같은 코드를 반복하지 않고 for문으로 해결할 수 있다.12345678910111213141516171819202122232425262728293031#include #include using namespace std;//4방향 탐색int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};int arr[100][100];int N,M;queue q; //범위를 벗어나는지 확인해주는 chkbool chk(int a,int b){ return 0