題目描述
有n個小朋友坐成一圈,每人有ai個糖果。每人只能給左右兩人傳遞糖果。每人每次傳遞乙個糖果代價為1。
輸入第一行乙個正整數nn<=1'000'000,表示小朋友的個數.
接下來n行,每行乙個整數ai,表示第i個小朋友得到的糖果的顆數.
輸出求使所有人獲得均等糖果的最小代價。
複製樣例資料
412樣例輸出54
4
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define inf 1000010
typedef long long ll;
using namespace std;
int n;
int s[1000010],ss[1000010];
int main()
pj=sum/n;
for(i=1;i<=n;i++)
ss[i]=s[i]+ss[i-1]-pj;
// for(i=1;i<=n;i++)
// cout
for(i=1;i<=n;i++)
jg+=abs(ss[i]-ss[(n+1)/2]);
printf("%lld\n",jg);
return 0;
}
糖果傳遞問題
今天接觸到這道水題,才發現 我好菜啊t t 廢話少說,革命尚未成功,同志們還需努力啊!這道題用到了字首和 歸納法 貪心思想。看到題我們可以馬上想到求平均值,之後嘛 乙個乙個數唄 he tui t t進入正題。分析 首先設x i 表示i 1向i傳的糖果數 可以為正也可以為負 特殊的x n 表示1向n傳...
糖果傳遞 貪心,絕對值不等式)
有n個小朋友坐成一圈,每人有a i 個糖果。每人只能給左右兩人傳遞糖果。每人每次傳遞乙個糖果代價為1。求使所有人獲得均等糖果的最小代價。輸入格式 第一行輸入乙個正整數n,表示小朋友的個數。接下來n行,每行乙個整數a i 表示第i個小朋友初始得到的糖果的顆數。輸出格式 輸出乙個整數,表示最小代價。資料...
發糖果問題 二分 貪心
注 與cf上的sweets for everyone 不一樣 幾個關鍵點 1.剛開始的位置是0。2.在時間充裕的前提下,如果手上的糖不夠,可以路過h不發糖,去s買了回來再發。3.但是每個s只能買一次糖。4.如果時間t內不能給所有鄰居發完糖果,則輸出 1。5.為了剛開始帶最少的糖果,每經過乙個s一定買...