n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 -1。
每個輸入包含乙個測試用例。
每個測試用例的第一行包含乙個整數 n(1 <= n <= 100),
接下來的一行包含 n 個整數 ai(1 <= ai <= 100)。
輸出一行表示最少需要移動多少次可以平分蘋果,如果方案不存在則輸出 -1。
示例1
複製
4
7 15 9 5
複製
3
題解:
#include #include using namespace std;
int main()
if (sum % n != 0)
else
}if (isok == true)
}cout << cnt << endl;}}
} return 0;
}
網易買蘋果
採用動態規劃求解。思路同本文中前面的程式設計題 跳石板。建立乙個vector容器steps,steps i 表示購買i個蘋果所需的最小袋數。初始化為steps容器為int max。從1蘋果開始遍歷,若steps i 為int max,表示無法購買該個數的蘋果,直接開始下次迴圈。若steps i 不為...
2017網易校招真題 分蘋果
分蘋果 時間限制 1秒 空間限制 32768k 熱度指數 16917 n 只奶牛坐在一排,每個奶牛擁有 ai 個蘋果,現在你要在它們之間轉移蘋果,使得最後所有奶牛擁有的蘋果數都相同,每一次,你只能從乙隻奶牛身上拿走恰好兩個蘋果到另乙個奶牛上,問最少需要移動多少次可以平分蘋果,如果方案不存在輸出 1。...
問題 分蘋果
題目描述 給定一堆共n個蘋果,兩個人輪流進行如下操作 1,將這一堆蘋果分成兩堆,每堆的蘋果數目必須不同 2,另乙個人選擇其中一堆作為新的堆,開始下一輪操作。直到某個人不能滿足要求輸掉比賽,遊戲結束。假設兩個人都足夠聰明 總會選擇對自己最優的方案。比如說有3個蘋果,第乙個人只能選擇分兩堆1 2,第二個...