Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mathematics
- DynamicProgramming
- Dag
- Algospot
- Eulerian path
- CS Academy
- BFSDFS
- bitmask
- Sieve_of_Eratosthenes
- Cycle detecting
- dynamic programming
- GCD
- graph modeling
- Euler circuit
- hashing
- backtracking
- 백준
- flows
- Shortest path
- implementation
- graph
- Eulerian circuit
- Segment Tree
- scc
- Euler path
- BOJ
- BST
- POJ
- Greedy
- disjoint-set
Archives
- Today
- Total
목록CS Academy (1)
그냥 하는 노트와 메모장
CS Academy - Array Removal
* CS Academy Round #9 - Array Removal[ 분류 - DSU ] 이 문제의 특성은 다음과 같다. 1. 지워야하는 순서가 정해져 있다. 2. 순서가 정해져 있는 만큼, k 번째 수를 지웠을 때 큰 수 S_k와 k+1번째 수를 지웠을 때 큰 수 S_k+1는 서로 종속적이다. 3. 수를 제거해나가며 큰 수를 출력해야 한다. 먼저 Greedy하게 접근해보자. S_k와 S_k+1를 비교해보자면 S_k >= S_k+1이 성립함을 직관적으로 알 수 있다. 또한 2.번에 의해 서로 종속적이기 때문에, "순서를 거꾸로" 생각하자. 거꾸로 생각하면, 초기에 없는 데이터에서 하나씩 생성됨을 알 수 있다. 따라서 이를 DSU로 합치는 방식을 택하며, 지금 합친 것과 지금까지의 최대값을 비교해나가며 답..
Solved problems
2018. 9. 1. 19:40