lin
klink
link
題意 : 牛牛有一排菜園,長度為n,第 i
ii 塊菜園的菜的高度為a[i
]a[i]
a[i]
。第i
ii天,第i
ii塊菜園的高度會增加1,第n+1
n+1n+
1天第1塊菜園的高度增加1,一次類推。但是牛牛有一種魔法,它可以使得一塊菜園的高度加1,或者減1,問至少需要多少天才能使得所有的菜園高度一致。題目保證開始時,菜園的高度參差不齊。
思路:二分+中位數,可以用二分把要求的問題轉換成判定性的問題,那麼如何判斷x
xx天是否可以呢?我們知道要把所有的高度變成統一高度,跟絕對高度沒有關係,跟相對高度有關係,所以,我們先求出哪些位置的菜園高度相對增加了,然後我們得到乙個新的陣列,我們要求的就是把這個陣列所有元素變成一樣的至少需要多少天,如果這個值小於x,就可以,否則就不行。把陣列中的所有元素變成一樣的就是中位數可以解決的問題。那麼這題就可以寫出來了。
c od
ecode
code
:
#include
#define ll long long
#define pi pair
#define mk make_pair
#define pb push_back
using namespace std;
const
int maxn =
1e5+10;
int a[maxn]
;int n;
bool ok
(ll x)
if(ans <= x)
return true;
else
return false;
}int
main()
printf
("%lld\n"
,ans)
;return0;
}
牛客練習賽63 C牛牛的揠苗助長 二分
題目 假設有n天,每天,小麥會按照下標依次增長1個單位,第一天第乙個小麥長,第二天第二個小麥,第n 1天第乙個小麥長。牛牛可以在每天操作,使得任意小麥長1單位或減1單位,求最小的n,使得所有小麥都相同長度 首先想到二分,對天數進行二分,然後已知t天,開始對小麥操作 對於cnt t n天,是對前cnt...
牛客練習賽9
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 珂朵莉想每天都給威廉送禮物,於是她準備了n個自己的本子 她想送最多的天數,使得每天至少送乙個本子,但是相鄰兩天送的本子個數不能相同 珂朵莉最多送幾天禮物呢 第一行乙個整...
牛客練習賽15
時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 第一次期中考終於結束啦!沃老師是個語文老師,他在評學生的作文成績時,給每位學生的分數都是乙個小於10的非負小數。amy 8.99999999999999999999...