NKOI 1321 數列操作問題

2021-07-14 14:47:19 字數 1364 閱讀 4822

數列操作問題

time limit:10000ms  memory limit:65536k

total submit:345 accepted:185

case time limit:1000ms

description

假設有一列數(1≤i≤n),支援如下兩種操作:

將ak的值加d。(k, d是輸入的數)

輸出as+as+1+…+at。(s, t都是輸入的數,s≤t)

input

第一行乙個整數n,

第二行為n個整數,表示的初始值≤10000。

第三行為乙個整數m,表示運算元

下接m行,每行描述乙個操作,有如下兩種情況:

add k d (表示將ak加d,1<=k<=n,d為數,d的絕對值不超過10000)

sum s t (表示輸出as+…+at)

output

對於每乙個sum提問,輸出結果

sample input

5 

1 2 3 2 4

5 sum 1 2

sum 1 5

add 1 2

sum 1 2

sum 1 5

sample output

3 

12 5

14

hint

m,n<=100000

線段樹的基本題型,具體看**

#include#includeusing namespace std;

const int maxn=100005;

struct wktree[2*maxn];//a,b分別表示當前節點的左右端點,left,right表示當前節點的左右兒子節點標號,v為權值

int n,m,tot,s,t,k,d,sum[maxn];

char qust[4];

inline void _read(int &x)

for(x=0;t>='0'&&t<='9';t=getchar())x=x*10+t-'0';

if(!sign)x=-x;

}void insert(int x,int y)//add操作函式

int getsum(int r)

}//sum操作函式

int main()

insert(1,n);

scanf("%d",&m);

for(i=1;i<=m;i++)

else

}}

NKOI 防守馬克

題目略 我最早其實想的貪心,力量從大到小,從下到上放置奶牛,但是如果有乙隻力量小的奶牛非常重,就矛盾。狀壓dp基礎題,但是開始我一直沒有想到運用列舉頂端的奶牛進行狀態轉移。我發現其實題目中物件增長的方式可以給狀態轉移帶來啟發,比如這裡的奶牛就是乙隻只疊上去的嘛。另外我還發現其實驗證dp是否可行就是看...

13 2 賽馬遊戲

作為乙個馬場的主人,你要安排你的n匹賽馬和另乙個馬場的n匹馬比賽。你已經知道了對方馬場的出戰表,即參加每一場的馬的強壯程度。當然你也知道你自己的所有馬的強壯程度。我們假定比賽的結果直接由馬的強壯程度決定,即更壯的馬獲勝 若相同則雙方均不算獲勝 請你設計乙個策略,使你能獲得盡量多的場次的勝利。給定對方...

NKOI 1349 工作安排

uasco 2009 open gold 2 工作安排 time limit 10000ms memory limit 65536k total submit 63 accepted 43 case time limit 1000ms description farmer john 有太多的工作要做...