일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고스팟
- tensorflow
- 알고리즘
- 코드그라운드
- 쉬운 계단 수
- 다이나믹 프로그래밍
- 피보나치수열
- 축사 배정
- 최소스패닝트리
- pythonanywhere
- 이친수
- 피노나치 수열
- 연속합
- 이분 매칭
- Floyd-Warshall
- 이분탐색
- 백트래킹
- Flpyd-Warshall
- 분할정복
- 백준
- 동적계획법
- VituralBox
- Mysql5.7
- 세그먼트 트리
- 이분매칭
- 나무자르기
- SpringBoot
- Ubuntu64bit
- 네이버 지도 api
- 최소신장트리
- Today
- Total
목록세그먼트 트리 (5)
초보개발자
입력: 배열의 가로 n, 세로 m, 배열의 값 n*m, 쿼리 수 k, 두 개의 좌표 (i, j), (x, y)출력: (i, j) ~ (x, y) 부터 더한 값알고리즘: 세그먼트 트리, 동적 계획법소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; int init(int start, int end, int node, vector &arr, vector &tree) { if (start == end) return tree[node] = arr[start]; else return tree[node] = init(start, (start + end) / 2, node * 2, arr, tree) + init((s..
입력: 월곡이가 살아온 날 N, 쿼리의 개수 Q1 p x : 생후 p일에 x를 추가 (1 ≤ p ≤ N, -109 ≤ x ≤ 109)2 p q : 생후 p일부터 q일까지 변화한 양 (1 ≤ p ≤ q ≤ N)출력: 각 쿼리에 대한 계산된 값알고리즘: 세그먼트 트리소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; #define ll long long void update(vector&, int, int, int, int, ll); ll sum(vector&, int, int, int, int, int); int main() { int N, Q; scanf("%d %d", &N, &Q); int h = (i..
입력: 테스트케이스 C(C≤50), 판자의 수(1≤N≤20,000), hi(0≤hi≤10,000)출력: 주어진 울타리에서 잘라낼 수 있는 최대 직사각형의 크기알고리즘: 세그먼트 트리, 분할정복소스코드#define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; #define MAX 20 * 1000 + 1 int N; vector wood, tree; void init(int, int, int); int retIndex(int, int, int, int, int); int maxS(int, int); int max(int a, int b) { return (a > b ? a : b); } int main() { int C; ..
입력: 직사각형의 수 n(1≤n≤100,000) , n개의 직사각형의 높이 hi(1≤hi≤1,000,000,000), n = 0이면 종료출력: 각 테스트케이스에 대해서, 히스토그램에서 가장 큰 직사각형의 넓이알고리즘: 세그먼트 트리실패한 소스코드#define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; #define ll long long #define MAX 1000*1000*1000 + 1 ll min(ll a, ll b) { return (a b ? a : b); } ll init(vector& height, ve..
입력: 정수 N, M(1 ≤ N, M ≤ 100,000), 정수 N개, M개의 (a, b) 쌍 (각 정수들 1이상 1,000,000,000 이하)출력: M개의 줄에 입력받은 순서대로 각 a~b번째 숫자 중 최솟값 출력소스#define _CRT_SECURE_NO_WARNINGS #include #include #include #define MAX 1000*1000*1000 + 1 using namespace std; int min(int a, int b) { return (a < b ? a : b); } int init(vector& tree, vector&arr, int node, int start, int end) { if (start == end) return tree[node] = arr[start..