SlideShare a Scribd company logo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0
Persistent Segment Tree
Sogang ICPC Team – 2019 여름 고급 스터디
Suhyun Park
acm.sogang.ac.kr
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Remarks on Segment Trees
1–10
1–5 6–10
1–3 4–5 6–8 9–10
1–2 3 4 5 6–7 8 9 10
1 2 6 7
f (x, s, e, ···) = f
(
2x, s,
⌊
s+e
2
⌋
, ···
)
+ f
(
2x+1,
⌊
s+e
2
⌋
+1, e, ···
)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
Persistent Segment Tree
T1
1–5
1–3 4–5
1–2 3 4 5
1 2
구조체와 포인터로 구현하며, 2D 쿼리를 처리하기 위해 여러 버전의
트리를 만들 예정
예를 들어 Tn 은 y 좌표가 0···n인 쿼리의 정보를 담는다고 하자
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
Persistent Segment Tree
T0 T1
1–5
1–3 4–5
1–2 3 4 5
1 2
1–5
1–3 4–5
1–2 3
T2 는 T1 을 기반으로 다른 노드들만 새로 만들고, 나머지 노드들은
포인터로 전 버전의 트리를 가리키게 한다, 이를 반복해 트리 생성
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
Persistent Segment Tree
0 ≤ x ≤ mx, 0 ≤ y ≤ my 이고 총 데이터 수를 n개라 할 때···
▶ 트리 하나 만드는 시간: O (logmx)
▶ 트리 전체를 만드는 시간: O (nlogmx)
▶ Ti 를 쿼리하는 시간: O (logmx)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
Persistent Segment Tree
R = [xl, xr]×[yl, yr] 쿼리하기?
▶ Tn 은 y 좌표가 0···n인 쿼리의 정보를 담는다
▶ 따라서 R을 쿼리하려면
▶ Tyr 에 대해서 [xl, xr]을 쿼리
▶ Tyl−1 에 대해서 [xl, xr]을 쿼리
▶ 한 후 둘의 차를 구하면 된다
Ti 에 대해 두 번 쿼리하므로 직사각형 영역의 쿼리가 겨우 O (logmx)
이다!
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
PSTs vs 2D Segment Trees
0 ≤ x ≤ mx, 0 ≤ y ≤ my 이고 총 데이터 수를 n개라 할 때···
PST 2D
공간 O (nlogmx) O (mxmy)
쿼리 O (logn) O (logmx logmy)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
PSTs vs 2D Segment Trees
하지만
▶ 값 업데이트
▶ RMQ 처리
같은 일들은 PST가 할 수 없는 부분이고, 값들이 sparse하지 않으면
의미가 별로 없으므로 PST와 2D segment tree 중 적절한
자료구조를 잘 선택해야 한다
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
PSTs vs 2D Segment Trees
참고: 2D segment tree는 2차원 배열을 이용해 y좌표로 분할 정복
→ x좌표로 분할 정복 같은 식으로 만들 수 있다
구현이 생각보다 어렵지 않으니 직접 해 봐도 좋음! (lazy
propagation 등 모두 1D segment tree와 비슷하게 처리하면
된다)
2D segment tree source code
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
Egg BOJ #11012
당신은 임기가 m일 남은 대통령이고, 매일 유세하러 나간다. 유세는
직사각형 모양의 공간을 돌아다니며 진행한다.
시민들은 집에서 당신이 보이면 달걀을 던진다. 시민들의 집의
좌표들이 주어졌을 때, 유세하러 나가면 몇 개의 달걀을 맞을지 구하라.
▶ 집 개수 = n ≤ 10000, m ≤ 50000
▶ 0 ≤ x, y ≤ 105
▶ 테스트 케이스 20개
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
Egg BOJ #11012
문제를 간단히 하면
▶ R = [xl, xr]×[yl, yr] 내부의 점의 개수를 세는 쿼리를 구현해라
가 된다
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
Egg BOJ #11012
42 namespace pst {
43 struct node {
44 node *l, *r;
45 int sum;
46 node() : l(nullptr), r(nullptr), sum(0) {}
47 node(int val) : l(nullptr), r(nullptr), sum(val) {}
48 node(node *l, node *r) : l(l), r(r), sum(0) {
49 if (l) sum += l ->sum;
50 if (r) sum += r ->sum;
51 }
52 };
source code
그냥 세그먼트 트리 만들듯이
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
Egg BOJ #11012
54 node* init(int s, int e) {
55 if (s == e) return new node(0);
56 int m = (s + e) / 2;
57 return new node(init(s, m), init(m + 1, e));
58 }
59
60 int sum(node *u, int s, int e, int l, int r) {
61 if (l > r)
62 return 0;
63 if (l == s && e == r)
64 return u ->sum;
65 int m = (s + e) / 2;
66 return sum(u ->l, s, m, l, min(r, m))
67 + sum(u ->r, m + 1, e, max(l, m + 1), r);
68 }
source code
그냥 세그먼트 트리 만들듯이
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
Egg BOJ #11012
54 node* init(int s, int e) {
55 if (s == e) return new node(0);
56 int m = (s + e) / 2;
57 return new node(init(s, m), init(m + 1, e));
58 }
59
60 int sum(node *u, int s, int e, int l, int r) {
61 if (l > r)
62 return 0;
63 if (l == s && e == r)
64 return u ->sum;
65 int m = (s + e) / 2;
66 return sum(u ->l, s, m, l, min(r, m))
67 + sum(u ->r, m + 1, e, max(l, m + 1), r);
68 }
source code
그냥 세그먼트 트리 만들듯이
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
Egg BOJ #11012
70 node* update(node* u, int s, int e, int i, int dv) {
71 if (s == e)
72 return new node(u ->sum + dv);
73 int m = (s + e) / 2;
74 if (i <= m)
75 return new node(update(u ->l, s, m, i, dv), u ->r);
76 else
77 return new node(u ->l, update(u ->r, m+1, e, i, dv));
78 }
79 }
source code
여기서는 갱신되는 부분만 새로 만들어주고 아닌 부분은 원래 트리를
포인터로 레퍼런스한다
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
Egg BOJ #11012
81 queue<int> coords[100001];
82 pst ::node *_trees[100002];
83 pst ::node **trees = _trees + 1;
84
85 int main() {
86 cin.tie(nullptr);
87 cout.tie(nullptr);
88 ios_base ::sync_with_stdio(false);
source code
trees[-1]을 쓰기 위한 더럽고 치사한 처리
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
Egg BOJ #11012
90 int t;
91 cin >> t;
92 while (t --) {
93 int n, q;
94 cin >> n >> q;
95 while (n --) {
96 int x, y;
97 cin >> x >> y;
98 coords[x].emplace(y);
99 }
source code
좌표 입력
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
Egg BOJ #11012
101 trees[-1] = pst ::init(0, 100000);
102 for (int i = 0; i <= 100000; i ++) {
103 trees[i] = trees[i - 1];
104 while (coords[i].size()) {
105 trees[i] = pst ::update(trees[i], 0, 100000, coords[i].front(), 1);
106 coords[i].pop();
107 }
108 }
source code
PST 생성
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
Egg BOJ #11012
110 int s = 0;
111 while (q --) {
112 int l, r, b, t;
113 cin >> l >> r >> b >> t;
114
115 int lq = pst ::sum(trees[l - 1], 0, 100000, b, t);
116 int rq = pst ::sum(trees[r], 0, 100000, b, t);
117 s += rq - lq;
118 }
119 cout << s << 'n';
120 }
121
122 return 0;
123 }
source code
쿼리 처리

More Related Content

What's hot

[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석
jaypi Ko
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료beom kyun choi
 
[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론
jaypi Ko
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03chl132435
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초
jaypi Ko
 
cuda포스터-박일남
cuda포스터-박일남cuda포스터-박일남
cuda포스터-박일남DzH QWuynh
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예zupet
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1
Haesun Park
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
beom kyun choi
 
BOJ4743
BOJ4743BOJ4743
BOJ4743
Bomm Kim
 
3D Graphics 101
3D Graphics 1013D Graphics 101
3D Graphics 101
Leonardo YongUk Kim
 
Tda jisu kim
Tda jisu kimTda jisu kim
Tda jisu kim
NAVER Engineering
 
HI-ARC Number Theory
HI-ARC Number TheoryHI-ARC Number Theory
HI-ARC Number Theory
Jae-yeol Lee
 
HI-ARC PS 101
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101
Jae-yeol Lee
 
12 1. multi-dimensional array
12 1. multi-dimensional array12 1. multi-dimensional array
12 1. multi-dimensional array웅식 전
 
[시즌2, week3] R Basic
[시즌2, week3] R Basic[시즌2, week3] R Basic
[시즌2, week3] R Basic
neuroassociates
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Ki-Hwan Kim
 
Min inconmensurable weight
Min inconmensurable weightMin inconmensurable weight
Min inconmensurable weightJonghoon Park
 
11. array & pointer
11. array & pointer11. array & pointer
11. array & pointer웅식 전
 
프로그램 워크스마트 홍보자료
프로그램 워크스마트 홍보자료프로그램 워크스마트 홍보자료
프로그램 워크스마트 홍보자료Ikseong Kim
 

What's hot (20)

[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석
 
ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료ALS WS에 대한 이해 자료
ALS WS에 대한 이해 자료
 
[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론[신경망기초] 신경망의시작-퍼셉트론
[신경망기초] 신경망의시작-퍼셉트론
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초
 
cuda포스터-박일남
cuda포스터-박일남cuda포스터-박일남
cuda포스터-박일남
 
이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예이권일 Sse 를 이용한 최적화와 실제 사용 예
이권일 Sse 를 이용한 최적화와 실제 사용 예
 
해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1해커에게 전해들은 머신러닝 #1
해커에게 전해들은 머신러닝 #1
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
BOJ4743
BOJ4743BOJ4743
BOJ4743
 
3D Graphics 101
3D Graphics 1013D Graphics 101
3D Graphics 101
 
Tda jisu kim
Tda jisu kimTda jisu kim
Tda jisu kim
 
HI-ARC Number Theory
HI-ARC Number TheoryHI-ARC Number Theory
HI-ARC Number Theory
 
HI-ARC PS 101
HI-ARC PS 101HI-ARC PS 101
HI-ARC PS 101
 
12 1. multi-dimensional array
12 1. multi-dimensional array12 1. multi-dimensional array
12 1. multi-dimensional array
 
[시즌2, week3] R Basic
[시즌2, week3] R Basic[시즌2, week3] R Basic
[시즌2, week3] R Basic
 
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
Python의 계산성능 향상을 위해 Fortran, C, CUDA-C, OpenCL-C 코드들과 연동하기
 
Min inconmensurable weight
Min inconmensurable weightMin inconmensurable weight
Min inconmensurable weight
 
11. array & pointer
11. array & pointer11. array & pointer
11. array & pointer
 
프로그램 워크스마트 홍보자료
프로그램 워크스마트 홍보자료프로그램 워크스마트 홍보자료
프로그램 워크스마트 홍보자료
 

Similar to Persistent Segment Tree - Sogang ICPC Team, 2019

프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
Jongwook Choi
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
Jaeseok Park
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
JinTaek Seo
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)주영 송
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for test
Kyunghoon Kim
 
ffmpeg optimization using CUDA
ffmpeg optimization using CUDAffmpeg optimization using CUDA
ffmpeg optimization using CUDA
yyooooon
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf
tangtang1026
 
House pricing prediction in R(Regression Project)
House pricing prediction in R(Regression Project)House pricing prediction in R(Regression Project)
House pricing prediction in R(Regression Project)
Adonis Han
 
Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1
PartPrime
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종
민철 정민철
 
190821 delphi
190821 delphi190821 delphi
190821 delphi
Hyeon-Woo Sa
 
3콤비네이션
3콤비네이션3콤비네이션
3콤비네이션
herojoon1378
 
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
OpenStack Korea Community
 
하스켈 성능 튜닝
하스켈 성능 튜닝하스켈 성능 튜닝
하스켈 성능 튜닝
민석 이
 
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기zupet
 
[week6]R_Wrangling
[week6]R_Wrangling[week6]R_Wrangling
[week6]R_Wrangling
neuroassociates
 
[14.10.10] TressFX 번역(self)
[14.10.10] TressFX 번역(self)[14.10.10] TressFX 번역(self)
[14.10.10] TressFX 번역(self)
해강
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작
DACON AI 데이콘
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpKimjeongmoo
 

Similar to Persistent Segment Tree - Sogang ICPC Team, 2019 (20)

프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
MapReduce 실행 샘플 (K-mer Counting, K-means Clustering)
 
고등학생 R&E Python summary for test
고등학생 R&E Python summary for test고등학생 R&E Python summary for test
고등학생 R&E Python summary for test
 
ffmpeg optimization using CUDA
ffmpeg optimization using CUDAffmpeg optimization using CUDA
ffmpeg optimization using CUDA
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf
 
House pricing prediction in R(Regression Project)
House pricing prediction in R(Regression Project)House pricing prediction in R(Regression Project)
House pricing prediction in R(Regression Project)
 
Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1Deep learningwithkeras ch3_1
Deep learningwithkeras ch3_1
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종
 
190821 delphi
190821 delphi190821 delphi
190821 delphi
 
3콤비네이션
3콤비네이션3콤비네이션
3콤비네이션
 
R_datamining
R_dataminingR_datamining
R_datamining
 
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
 
하스켈 성능 튜닝
하스켈 성능 튜닝하스켈 성능 튜닝
하스켈 성능 튜닝
 
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기헤테로지니어스 컴퓨팅 :  CPU 에서 GPU 로 옮겨가기
헤테로지니어스 컴퓨팅 : CPU 에서 GPU 로 옮겨가기
 
[week6]R_Wrangling
[week6]R_Wrangling[week6]R_Wrangling
[week6]R_Wrangling
 
[14.10.10] TressFX 번역(self)
[14.10.10] TressFX 번역(self)[14.10.10] TressFX 번역(self)
[14.10.10] TressFX 번역(self)
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort Hwp
 

Persistent Segment Tree - Sogang ICPC Team, 2019