洛谷OJ P1031 均分纸牌
題目 Problem
題目連結:https://www.luogu.org/problemnew/show/P1031
敘述 Description
有$N$堆纸牌,编号分别为 $1,2,…,N$。每堆上有若干张,但纸牌总数必为$N$的倍数。可以在任一堆上取若干张纸牌,然后移动。
移牌规则为:在编号为$1$堆上取的纸牌,只能移到编号为$2$的堆上;在编号为$N$的堆上取的纸牌,只能移到编号为$N−1$的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。
现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。
例如$N=4$,$4$堆纸牌数分别为:
①$9$②$8$③$17$④$6$
移动$3$次可达到目的:
从 ③ 取$4$张牌放到 ④ $(9,8,13,10)$-> 从 ③ 取333张牌放到 ②$(9,11,10,10)$-> 从 ② 取111张牌放到①$(10,10,10,10)$。
輸入 Input
两行
第一行为:$N$($N$ 堆纸牌,$1 \leq N \leq 100$)
第二行为:$A_1,A_2, … ,A_n$($N$堆纸牌,每堆纸牌初始数,$1 \leq A_i \leq 10000$)
輸出 Output
一行:即所有堆均达到相等时的最少移动次数。
範例輸入 Sample Input
1 |
|
範例輸出 Sample Output
1 |
|
題解 Solution
Re:我没看懂我自己的想法,居然过了
因為沒有中國門號,無法在上面回,就留在這裡了
作法就是把差距移到下一個位置
也就是說這堆的牌把下一堆的牌拿過來平衡
反正下一堆不平衡從下下一堆再拿牌也沒關係
大概就是這樣
程式碼 Accepted Code
1 |
|
後記 Afterword
稍微看一下討論區,這題思路也蠻多的,可以好好嘗試其他的過程
本人試寫洛谷OJ,把「新手村」都刷光光了
難度排序還不錯,認識一下 NOI 或 NOIP 的題目
之後也會開始寫洛谷OJ的相關題解
(為何不用洛谷裡面的 Blog 呢?)
因為我沒有中國門號 QAQ
洛谷OJ P1031 均分纸牌
https://blog.yangjerry.tw/lg-1031/