P1438 無聊的數列

2022-10-10 21:54:16 字數 1094 閱讀 3940

p1438 無聊的數列

老規矩,先看操作

一看第乙個操作,給乙個區間的每個數遞增的增加數,這妥妥要用差分陣列完成啊。

區間修改,單點查詢。

我們直接維護差分陣列。

操作一:

lk,對[l-1,r]d,對r+1k+(r-l)*d,結束了,記得邊界問題。

操作二:

直接查詢[1,r]的區間和,即為\(a_p\)了。

#includeusing namespace std;

const int n = 1e5 + 10;

typedef long long ll;

struct node

tr[n<<2];

int a[n],b[n];

int n,m;

void pushup(int u)

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

; return;

}tr[u] = ;

int mid = l + r >> 1;

build(u<<1,l,mid),build(u<<1|1,mid+1,r);

pushup(u);

}void pushdown(int u)

}void modify(int u,int l,int r,int k)

pushdown(u);

int mid = tr[u].l + tr[u].r >> 1;

if(l<=mid) modify(u<<1,l,r,k);

if(r>mid) modify(u<<1|1,l,r,k);

pushup(u);

}ll query(int u,int l,int r)

int main()

else

}return 0;

}

P1438 無聊的數列

板子題 按照ppt所說的,預留0號位和n 1號位,0號位位於2的若干次方的位置。但是我試了一下。沒有嚴格要求的這樣的寫法,這題也能a,資料有點水。include include include include include include include include include inclu...

P1438 無聊的數列

無聊的yyb總喜歡搞出一些正常人無法搞出的東西。有一天,無聊的yyb想出了一道無聊的題 無聊的數列。k峰 這題不是傻x題嗎 維護乙個數列,支援兩種操作 1 1 l r k d 給出乙個長度等於r l 1的等差數列,首項為k,公差為d,並將它對應加到a l a r 的每乙個數上。即 令a l a l ...

P1438 無聊的數列

無聊的yyb總喜歡搞出一些正常人無法搞出的東西。有一天,無聊的yyb想出了一道無聊的題 無聊的數列。k峰 這題不是傻x題嗎 維護乙個數列,支援兩種操作 1 1 l r k d 給出乙個長度等於r l 1的等差數列,首項為k,公差為d,並將它對應加到a l a r 的每乙個數上。即 令a l a l ...