UESTC 1073 秋實大哥與線段樹

2021-08-09 01:46:24 字數 1343 閱讀 1684

uestc - 1073 

「學習本無底,前進莫徬徨。」 秋實大哥對一旁玩手機的學弟說道。

秋實大哥是乙個愛學習的人,今天他剛剛學習了線段樹這個資料結構。

為了檢驗自己的掌握程度,秋實大哥給自己出了乙個題,同時邀請大家一起來作。

秋實大哥的題目要求你維護乙個序列,支援兩種操作:一種是修改某乙個元素的值;一種是詢問一段區間的和。

input

第一行包含乙個整數nn,表示序列的長度。

接下來一行包含nn個整數aiai,表示序列初始的元素。

接下來一行包含乙個整數mm,表示運算元。

接下來mm行,每行是以下兩種操作之一:

1 x v : 表示將第

x個元素的值改為v

2 l r : 表示詢問

[l,r]

這個區間的元素和

1≤n,m,v,ai≤1000001≤n,m,v,ai≤100000,1≤l≤r≤n1≤l≤r≤n。

output

對於每乙個22 ll rr操作,輸出乙個整數佔一行,表示對應的答案。

sample input

1 2 3

2 1 2

1 1 5

2 1 2

sample output

#include #include

#define lid (id << 1)#define rid (id << 1 | 1)

using

namespace

std;

const

intn=

100005

;struct

node

tr[n * 4];

inta[n];

void push_up(int id)

void build(int id, int l,int r)

intmid = (l + r) >>1;

build(lid, l, mid);

build(rid, mid +

1, r);

push_up(id); }

void updata(int id,int x,int v)

intmid = (tr[id].l + tr[id].r) >>1;

updata(x <= mid ? lid : rid, x, v);

push_up(id); }

long long query(int id, int l, int r)

int main()

return0;

} 線段樹入門(一):

FPGA 程式130例 例10 7 例10 7

10.1 非流水線方式的8位全加器 module adder8 cout,sum,ina,inb,cin,clk output cout reg cout output 7 0 sum reg 7 0 sum input 7 0 ina,inb input cin reg 7 0 tempa,tem...

國慶訓練10 7

second tag 圖論,連通塊,中等 2033 poi2008 blo 時間限制 10秒 記憶體限制 162mb 題目描述 byteotia城市有n個 towns m條雙向roads.每條 road 連線 兩個不同的 towns 沒有重複的road.所有towns連通。輸入 輸入n 100000...

模擬測試107

t1 列舉中心所在位置,每次貪心找到左右最近的乙個相同字元移動。可以用單調指標掃。時間複雜度 o n 2 t2 兩個數的乘積為平方數,那麼這兩個數各自去掉平方因子後相等。去掉平方因子後可以用map統計答案。對於普通的 o sqrt 試除法,複雜度不允許,就算將所有的質數篩出後列舉質數也會超時。篩出質...