본문 바로가기

Algorithm

(13)
Fenwick Tree 펜윅 트리로 할 수 있는 것: - 점 업데이트, 구간 쿼리 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net #include using namespace std; #define fastio ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) typedef long long ll; struct Fenwick { vector tree; int n; Fenwick(int n) : tree(n+1), n(n) {} void in..
알고리즘 모음 ( 개인 노트용 ) 깃허브에 올리고 싶었지만 깃허브는 너무 어렵다. (상시 수정합니다.) (재정리가 필요해보인다.) 1. Segment Tree 구현체는 간단하나 응용이 어렵다는 생각이 듦. 구현 복잡하고 응용 다양한 코드는 제출코드 참고. 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net #include using namespace std; typedef long long ll; ll arr[1>=1) arr[i>>1]=arr[i]+arr[i^1]; } ll sum(in..
Heewon's Template #include using namespace std; #define fastio cin.tie(0)->sync_with_stdio(0) #define fi first #define se second #define nm (nl + nr >> 1) #define xm (xl + xr >> 1) #define pb(x) push_back(x) #define all(v) (v).begin(), (v).end() #define zip(v) (v).erase(unique(all(v)), (v).end()) #define dem_plc(x) cout