Submission #52067
ソースコード
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | #include <bits/stdc++.h> using namespace std; #define int long long /* ######################################################### # # # ## ##### # # #### ##### # # ##### #### # # # # # ## # # # # # # # # # # # # -- # # # # # # ##### # ##### # # # # # # # ## # # # # # # # # # # ##### ##### # # #### ##### # # ##### #### # # # ######################################################### */ struct BinaryIndexedTree { vector< int > data; int size; BinaryIndexedTree ( int n ) { this ->size = n; data.resize(n); } void add ( int pos, int value ) { for ( int i = pos; i <= size; i += i & -i ) { data[i] += value; } } // [1, pos] int getSum ( int pos ) { int sum = 0; for ( int i = pos; i > 0; i -= i & -i ) { sum += data[i]; } return sum; } const int operator [] ( int pos ) const { int sum = 0; for ( int i = pos; i > 0; i -= i & -i ) { sum += data[i]; } return sum; } }; signed main ( ) { int n, q; cin >> n >> q; BinaryIndexedTree bit(n); for ( int i = 0; i < q; i++ ) { int s, a, b; cin >> s >> a >> b; if ( s ) { cout << bit[b] - bit[a-1] << endl; } else { bit.add(a, b); } } return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0649 - 区間和(セグ木、BIT練習) |
ユーザー名 | r1825 |
投稿日時 | 2019-07-29 20:21:02 |
言語 | C++ |
状態 | Accepted |
得点 | 5 |
ソースコード長 | 1645 Byte |
最大実行時間 | 1366 ms |
最大メモリ使用量 | 96256 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | ALL | 5 / 5 | * |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # |
---|---|---|---|---|
input100-1 | AC | 100 ms | 988 KB |
1
|
input100-2 | AC | 221 ms | 1848 KB |
1
|
input100-3 | AC | 443 ms | 4248 KB |
1
|
input100-4 | AC | 892 ms | 8952 KB |
1
|
input100-5 | AC | 1366 ms | 16092 KB |
1
|
input1000-1 | AC | 450 ms | 18116 KB |
1
|
input1000-2 | AC | 1007 ms | 23204 KB |
1
|
input1000-3 | AC | 453 ms | 25476 KB |
1
|
input1000-4 | AC | 1237 ms | 31840 KB |
1
|
input1000-5 | AC | 387 ms | 33720 KB |
1
|
input10000-1 | AC | 1156 ms | 39444 KB |
1
|
input10000-2 | AC | 1273 ms | 45860 KB |
1
|
input10000-3 | AC | 990 ms | 50616 KB |
1
|
input10000-4 | AC | 1117 ms | 56140 KB |
1
|
input10000-5 | AC | 581 ms | 59100 KB |
1
|
input100000-1 | AC | 1335 ms | 66280 KB |
1
|
input100000-2 | AC | 217 ms | 67252 KB |
1
|
input100000-3 | AC | 235 ms | 68104 KB |
1
|
input100000-4 | AC | 683 ms | 71392 KB |
1
|
input100000-5 | AC | 1165 ms | 77112 KB |
1
|
input1000000-1 | AC | 161 ms | 84620 KB |
1
|
input1000000-2 | AC | 495 ms | 86888 KB |
1
|
input1000000-3 | AC | 556 ms | 89412 KB |
1
|
input1000000-4 | AC | 1119 ms | 94244 KB |
1
|
input1000000-5 | AC | 487 ms | 96256 KB |
1
|
input1001000-1 | AC | 16 ms | 88416 KB |
1
|
input1001000-2 | AC | 19 ms | 88512 KB |
1
|
input1001000-3 | AC | 18 ms | 88616 KB |
1
|
input1001000-4 | AC | 22 ms | 88456 KB |
1
|
input1001000-5 | AC | 22 ms | 88560 KB |
1
|