IncDec序列 差分 貪心

2021-10-06 00:11:19 字數 731 閱讀 1591

給定乙個長度為 n 的數列 a1,a2,…,an

,每次可以選擇乙個區間[l,r]

,使下標在這個區間內的數都加一或者都減一。

求至少需要多少次操作才能使數列中的所有數都一樣,並求出在保證最少次數的前提下,最終得到的數列可能有多少種。

第一行輸入正整數n。

接下來n行,每行輸入乙個整數,第i+1行的整數代表ai。

第一行輸出最少操作次數。

第二行輸出最終能得到多少種結果。

00≤ai<21474836480≤a

i<

2147483648

411

22

1

2

4.全部,l==2,r==n,(無意義)。
#include#include#include#includeusing namespace std;

#define ll long long

const int n = 100010;

int a[n];

int main()

printf("%lld\n%lld\n", max(z,f), abs(z - f) + 1);

return 0;

}

IncDec序列(差分 貪心)

原題鏈結 題目大意 給定乙個序列,可以在其連續子串行上進行加一或者減一操作,求使整個序列變成相同數的最小運算元和種數。思路首要要明確是對 l,r 序列進行加一或者減一操作,可以聯想到字首和,我們對乙個陣列b的第l項進行減一操作,第r 1項進行加一操作,這樣作用到b陣列的字首和序列就是連續的區間段 l...

差分 貪心 IncDec序列

原題 題目描述 給定乙個長度為 n 的數列 a1,a2,ana1,a2,an,每次可以選擇乙個區間 l,r l,r 使下標在這個區間內的數都加一或者都減一。求至少需要多少次操作才能使數列中的所有數都一樣,並求出在保證最少次數的前提下,最終得到的數列可能有多少種。輸入格式 第一行輸入正整數n。接下來n...

100 IncDec序列 差分 貪心

用途 主要用於給某一區間 加乙個數,或減乙個數 o 1 的時間內完成 差分,實際上就是字首和的逆過程,例如 已知字首和陣列 b,那麼它的差分陣列 a a1 b1 a2 b2 b1 a3 b3 b2 a4 b4 b3 an bn bn 1 如果把它們相加就很容易看出 a1 a2 a3 a4 an bn...