728x90

전체 글 297

[numpy | python] numpy.median

# np.median() np.median(array) : 파라미터로 들어온 array 의 정렬된 중간 값을 구해준다. import numpy as np arr = [2, 5, 7, 6, 8, 10, 11] m = np.median(arr) print(m) 위의 코드를 실행했을 경우 2 5 6 7 8 10 11순으로 정렬 된 array의 가운데 값인 7이 반환된다 import numpy as np arr = [2, 5, 7, 8, 10, 11] m = np.median(arr) print(m) 위의 경우처러 짝수일 경우에는 7과 8의 중간값이 7.5가 반환된다.

[Range Queries] Segment Tree | C++

#include #include using namespace std; #define NUMBER 12 int tree[4 * NUMBER]; // 4를 곱하면 모든 범위를 커버할 수 있다. 개수에대하여 2의 제곱 형태의 길이를 가지기 때문...이라는데 머지? int A[] = { 1,9,3,8,4,5,5,9,10,3,4,5 }; // 구간 합을 구하고자 하는 리스트를 저장한다. void build(int node, int start, int end) { if (start == end) { tree[node] = A[start]; } else { int mid = (start + end) / 2; // 재귀로 두 부분으로 나눈 뒤에 그 합을 자기 자신의 합으로 한다. // 처음 시작은 build(!,0,n..

[Network Flow Applications] Min Cut Problem

# Min Cut Problem == vertex patitioning Source s, sink t를 가진 directed graph G =(V,E)에서 s-t cut (s∈S, t∈T)를 만족하는 vertex들의 partition(S,T)으로 정의한다. 한 partition은 무조건 source만, 다른 한 쪽의 partition은 무조건 sink만 포함. 한 partition에 sink 와 source를 모두 포함할 수는 없다. s-t cut의 capacity C(s,t)는 u∈S, v∈T를 만족하는 모든 edge의 capacity의 총 합으로 정의한다. 시작 vertex는 source에서, 종료 vertex는 sink에서 존재해야 한다. # Max-flow & Min cut theorem Dire..

[Network Flow] Ford-Fulkerson Algorithm

# Ford-Fulkerson Algorithm Max-Flow 문제를 해결할 수 있는 대표적인 알고리즘이다. 주어진 그래프 G와 현재 Flow f로 정의되는 잔여 그래프(residual graph) Gf를 이용해서 해결된다. # Residual graph 초기화 G의 vertex와 edge를 모두 G0로 copy한다. G0의 edge 중 one-way-path edge를 edge(v,u)를 G0에 추가한다. 이때 edge(v,u)의 capacity는 0으로 정의한다. one-way-path : edge(u,v)는 있으나 edge(v,u)는 없는 경우 2번의 작업상태에 있는 그래프를 G'이라고 칭할 예정이다. #Augumenting path : 증가 경로 G'의 source 에서 sink 까지 가는 pa..

[Network Flow] 네트워크 플로우

# 네트워크 플로우 (Network Flow) - 특정한 지점에서 다른 지점으로 데이터가 얼마나 많이 흐르고 있는지를 측정하는 알고리즘 # 필요 용어 정리 capacity (용량): edge가 수용할 수 있는 값 flow (유랑) : 실질적으로 보내는 값 source : indegreee가 0인 vertex sink : outdegree가 0일 vertex (수첩의 개입) 이라고 정의하기에는 너무 두루뭉실 뜬구름이 뭉게뭉게여서 다시 설명을 하자면 육상 트랙의 라인 수 == capacity 트랙에서 한 번에 뛰어야 하는 선수의 수 == flow 라고 생각하면 앵간 편하지 않을까 싶기도 한댱 ㅇㅅㅇ... 뭔가 일반화된 그래프의 시각으로 봤을 때 start 점이 source / finish 지점이 sink라고..

[OS] OS 기본 설명

# OS의 흐름 Program Binary code Main Memory high level language /command low level language / Instruction, data excutable code Compiler : 하나의 command가 여러개의 instruction으로 저장 Loader : excutable code # OS의 기본 element processor IO module main memory system bus # Processor 컴퓨터의 작동을 관리. 데이터를 처리하는 함수를 실행 CPU라고도 불린다. == core라고도 불린다

[DP] Dynamic Programing

Dynamic Programing recursion + Memoization 단순 테이블 채우기가 아니라 memoization을 이용해서 recursion을 smart하게 하는 기법. # 문제해결 절차 문제를 정확하게 정의하기. 정의된 문제에 대한 subproblem을 생각한 뒤 이를 이용해 reccurence relation을 세운다. A(i)를 해결하기 위해서 이전단위의 subproblem의 solution으로 현재 해결하고자하는 식을 논리적으로 구한다. memoization을 이용하여 recurrence relation 계산 중간 결과물들을 저장할 data structure을 고른다. 대개 n차원 array 사용. Subproblem들간의 dependency를 확인한다. (보통 top-down | ..

[C++] UVa 10718 : Bit Mask

https://onlinejudge.org/index.php?option=onlinejudge&Itemid=8&page=show_problem&problem=1659 Online Judge Our Patreons Diamond Sponsors Steven & Felix Halim Reinardus Pradhitya Gold Sponsors --- YOUR NAME HERE ---- Silver Sponsors --- YOUR NAME HERE ---- Bronze Sponsors Christianto Handojo Krzysztof Adamek Fatima Broom Amal Augustine Contribute Bitcoin onlinejudge.org N | M 의 계산 값이 최대가 되는 L과 U 사..

[UVa 10382 ] Watering Grass

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=113&page=show_problem&problem=1323 Online Judge Our Patreons Diamond Sponsors Steven & Felix Halim Reinardus Pradhitya Gold Sponsors --- YOUR NAME HERE ---- Silver Sponsors --- YOUR NAME HERE ---- Bronze Sponsors Christianto Handojo Krzysztof Adamek Fatima Broom Amal Augustine Contribute Bitcoin onlinejudge.org # problem ..

728x90