DSL_2_B
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DSL_2_B
この手のクエリが出たときに系が弱すぎる気がしたのでとりあえずBITの実装をやることに
幾何はどうしたって…?忙しさで忘れました
とりあえずこんなんでいいかなと精進に際してペタリできるようにちゃんとクラスを実装
最近こういうのちゃんとした方がいいかもなと思い始めたのでやることにしました
#include <iostream> #include <deque> #include <vector> #include <cstdio> #include <cstring> #include <utility> #include <algorithm> #include <string> #include <cmath> #include <queue> #define i64 long long #define ui64 unsigned long long #define REP(i,n) for(int (i)=0;(i)<(n);i++) #define REP2(i,k,n) for(int (i)=(k);(i)<(n);i++) #define MDIST(a,b) abs(a-b) #define DIST(a,b) sqrt((a)*(a)+(b)*(b)) #define ATCODER 1000000007 using namespace std; //////////////////////// class BIT{ int size; vector<i64> tree; public: BIT():size(0),tree(0){}; BIT(int n):size(n),tree(n+1,0){}; void add(i64 x,int n){ for(int i=n;i<=size;i+=i&-i){ tree[i]+=x; } } i64 sum(int s,int t){ if(s>t)return 0; i64 res=0; for(int i=t;i>0;i-=i&-i){ res += tree[i]; } for(int i=s-1;i>0;i-=i&-i){ res -= tree[i]; } return res; } i64 get(int n){ return tree[n]; } }; int main(){ int n,q; cin >> n >> q; BIT d(n); int com,x,y; for(int i=0;i<q;i++){ cin >> com >> x >> y; if(com)cout << d.sum(x,y) << endl; else d.add(y,x); } }