給定乙個長度為 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...