字首和 區間 interval

2021-09-12 17:52:12 字數 1287 閱讀 1454

apojacsleam喜歡陣列。

他現在有乙個n個元素的陣列a,而他要對a[l]-a[r]進行m次操作:

操作一:將a[l]-a[r]內的元素都加上p

操作二:將a[l]-a[r]內的元素都減去p

最後詢問a[l]-a[r]內的元素之和?

請認真看題乾及輸入描述。

輸入共m+3行:

第一行兩個數,n,m,意義如「題目描述」

第二行n個數,描述陣列。

第3-m+2行,共m行,每行四個數,q,l,r,p,若q為1則表示執行操作2,否則為執行操作1

第4行,兩個正整數l,r

乙個正整數,為a[l]-a[r]內的元素之和
示例1

10 5

1 2 3 4 5 6 7 8 9 10

1 1 5 5

1 2 3 6

0 2 5 5

0 2 5 8

1 4 9 6

2 7

23
1、資料範圍-> long long

2、字首和

給定的區間,對某一區間加/減去乙個數字,求操作給定次之後的和的值

如果說每一段都進行討論的話就會時間超限,解決方案是使用字首和,左邊的代表的是改變多少,區間右端點+1代表的是又變回原值

再加上原區間的這一段,就是最後的結果。

#include#include#include#include#include#include#includeusing namespace std;

int a[1000005];

int b[1000005];

int main()

else

}int number_l,number_r;

long long int number_puts=0;

scanf("%d%d",&number_l,&number_r);

for(int i=1;i<=n;++i)

for(int i=number_l;i<=number_r;++i)

printf("%lld\n",number_puts);

return 0;

}

區間 interval 牛客

apojacsleam喜歡陣列。他現在有乙個n個元素的陣列a,而他要對a l a r 進行m次操作 操作一 將a l a r 內的元素都加上p 操作二 將a l a r 內的元素都減去p 最後詢問a l a r 內的元素之和?請認真看題乾及輸入描述。輸入共m 3行 第一行兩個數,n,m,意義如 題目...

區間權值 字首和

時間限制 c c 1秒,其他語言2秒 空間限制 c c 1048576k,其他語言2097152k 64bit io format lld 小 bo 有 n 個正整數 a1.an,以及乙個權值序列 w1 wn,現在他定義 現在他想知道 你只需要輸出答案對 109 7 取模後的值 第一行乙個正整數 n...

K倍區間 字首和

第二天叫醒我的不是鬧鐘,是夢想!題目描述 給定乙個長度為n的數列,a1,a2,an,如果其中一段連續的子串行ai,ai 1,aj i j 之和是k的倍數,我們就稱這個區間 i,j 是k倍區間。你能求出數列中總共有多少個k倍區間嗎?輸入 第一行包含兩個整數n和k。1 n,k 100000 以下n行每行...