AOJ DSL_2_E Range Add Query (RAQ)
2016-12-17 14:43
197 查看
Range Add Query
数列 A = {a1,a2,...,an} に対し、次の2つの操作を行うプログラムを作成せよ。add(s,t,x): as,as+1,...,at にxを加算する。
get(i): aiの値を出力する。
ただし、ai (i=1,2,...,n)は、0 で初期化されているものとする。
入力
n q query1 query2 : queryq
1行目にAの要素数n, クエリの数qが与えられる。続くq行に i 番目のクエリ queryi が与えられる。queryi は以下のいずれかの形式で与えられる。
0 s t x
または
1 i
各クエリの最初の数字は、クエリの種類を示し、'0'がadd(s,t,x)、'1'がget(i)を表す。
出力
各getクエリについて、値を1行に出力せよ。制約
1≤n≤1000001≤q≤100000
1≤s≤t≤n
1≤i≤n
0≤x≤1000
入力例 1
3 5 0 1 2 1 0 2 3 2 0 3 3 3 1 2 1 3
出力例 1
3 5
入力例 2
4 3 1 2 0 1 4 1 1 2
出力例 2
0 1
区间加 单点查
树状数组+差分 或 线段树
缩常数,继续打榜
#include <cstdio> #include <cstdlib> #define siz 10000000 char buf[siz], *bit = buf; inline int nextInt(void) { register int ret = 0; register int neg = false; for (; *bit < '0'; ++bit) if (*bit == '-')neg ^= true; for (; *bit >= '0'; ++bit) ret = ret * 10 + *bit - '0'; return neg ? -ret : ret; } int n, m; int pre[100005]; inline int ask(int p) { int ret = 0; for (; p; p -= p&-p) ret += pre[p]; return ret; } inline void add(int p, int k) { for (; p <= n; p += p&-p) pre[p] += k; } signed main(void) { fread(buf, 1, siz, stdin); n = nextInt(); m = nextInt(); for (int i = 1; i <= m; ++i) { int c = nextInt(); if (c) // get(i) printf("%d\n", ask(nextInt())); else // add(s, t, x) { int x = nextInt(); int y = nextInt(); int k = nextInt(); add(x, k); add(y + 1, -k); } } //system("pause"); }
@Author: YouSiki
相关文章推荐
- easyui combobox的数据value为0时默认选择此项且提交时不会把这个0提交
- 【easyui】datagrid中增加按钮样式
- 【easyui】datagrid的列可编辑
- 【easyui】datagrid中增加进度条
- 【easyui】dialog中继续弹出dialog
- 【easyui】tabs 不弹出重复窗口
- gdb tui 基本调试 笔记
- gdb tui 基本调试 笔记
- Intel Edison Arduino 温度检测并上传至网站
- 【leetcode】63. Unique Paths II【java】
- (前端大牛整理的面试题)Front End Developer Questions(前端开发面试题)
- Uiimage 的矩阵变化
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence
- Codeforces Round #384 B. Chloe and the sequence