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..
Well-Known Sequence
약 일주일 전에 코드업에서 오랫동안 고민하던 문제를 풀었는데, 바로 이 문제다. Well-Known Sequence $f(n)=f(n-2)-f(n-1)$이라고 정의하자. 초항 $a$가 주어질 때, 적절한 두번째 항 $b$를 정하면 $f(n)$을 $0$으로 만들 수 있다. (단, $a \neq b$, $b$은 정수) 예) $a=25$, $b=15$인 경우, $25$, $15$, $10$, $5$, $5$, $ codeup.kr 매우 정수론 같이 생겼지만, 아이디어가 잘 떠오르지 않는다... 예제만으로 규칙을 찾기는 쉽지 않고, 수열의 길이를 가장 길게 만들라는 문장도 잘 와 닿지 않는다. 이 문제를 풀기 위해서는... 내가 몇 달 동안 생각하지 못했던 '발상의 전환'이 필요하다! 이런 부류의 아이디어성 문..