陣列計算機

2021-08-08 18:17:11 字數 1916 閱讀 9185

陣列計算機

time limit: 1000ms memory limit: 65536kb

submit statistic discuss

problem description

blue 有乙個神器的機器,這個機器可以讀入乙個陣列,並按照使用者要求快速地進行陣列的處理和計算,它支援如下兩種操作:

操作 1:把陣列中第 p 個元素的值增加 v。

操作 2:計算陣列中 [l, r] 區間內所有數的和。

這個機器就是這麼的神奇,但是 blue 的計算機壞掉了,你能幫他修一下嗎?

input

輸入資料有多組(資料組數不超過 20),到 eof 結束。

對於每組資料:

第 1 行輸入乙個整數 n (1 <= n <= 10^5),表示陣列中元素的個數。

第 2 行輸入 n 個用空格隔開的整數 ai (1 <= ai <= 10^10),表示初始輸入到計算機中的陣列。

第 3 行輸入乙個整數 q (1 <= q <= 50000),表示使用者的操作次數。

接下來 q 行,每行輸入先輸入 1 個整數,表示操作型別,根據不同的操作型別:

如果型別為 1,則緊接著輸入 2 個用空格隔開的整數 p (1 <= p <= n) 和 v (1 <= v <= 10^10),表示要把陣列中第 p 個數的值增加 v。

如果型別為 2,則緊接著輸入 2 個用空格隔開的整數 l, r (1 <= l <= r <= n),表示要計算區間 [l, r] 內所有數的和(陣列下標從 1 開始)。

output

對於每組資料中的每次型別為 2 的操作,輸出 1 行,包含乙個整數,表示計算出的和。

example input

5 1 2 3 4 5

5 2 1 2

2 1 5

1 4 10

2 4 5

2 1 5

example output

3 15

19 25

hint

#include #include #include using namespace std;

struct node

tree[400000];

long long data[400000];

void bulid(int root,int

left,int

right)

intmid = (left+right)/2;

bulid(root*2+1,left,mid);

bulid(root*2+2,mid+1,right);

tree[root].val = tree[root*2+1].val +tree[root*2+2].val;

}void updata(int root,int

left,int

right,int pos,long long val)

intmid = (left + right)/2;

if(pos<=mid)

updata(root*2+1,left,mid,pos,val);

else

updata(root*2+2,mid+1,right,pos,val);

tree[root].val = tree[root*2+1].val + tree[root*2+2].val;

}long long query(int root,int

left,int

right,int qleft,int qright)

int main()

bulid(0,0,n-1);

int m;

scanf("%d",&m);

while(m--)

else

if(x==2)}}

}

樹狀陣列 陣列計算機

陣列計算機 time limit 1000ms memory limit 65536kb submit statistic problem description blue 有乙個神器的機器,這個機器可以讀入乙個陣列,並按照使用者要求快速地進行陣列的處理和計算,它支援如下兩種操作 操作 1 把陣列中...

計算機 計算機基礎整理

大學四年浪費的代價。半夜整理東西 cpu 其功能主要是解釋計算機指令以及處理計算機軟體中的資料。cpu由運算器 控制器和暫存器及實現它們之間聯絡的資料 控制及狀態的匯流排構成。差不多所有的cpu的運作原理可分為四個階段 提取 fetch 解碼 decode 執行 execute 和寫回 writeb...

SDUT OJ 陣列計算機(線段樹)

time limit 1000 ms memory limit 65536 kib submit statistic problem description blue 有乙個神器的機器,這個機器可以讀入乙個陣列,並按照使用者要求快速地進行陣列的處理和計算,它支援如下兩種操作 這個機器就是這麼的神奇,...