均分紙牌問題

2021-08-29 13:51:04 字數 524 閱讀 1811

有n堆紙牌,編號分別為1,2,…,n。每堆上有若干張,但紙牌總數必為n的倍數。可以在任一堆上取若干張紙牌,然後移動。移牌的規則為:在編號為1上取的紙牌,只能移到編號為2的堆上;在編號為n的堆上取的紙牌,只能移到編號為n-1的堆上;其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。現在要求找出一種移動方法,用最少的移動次數使每堆上紙牌數都一樣多。

均分紙牌問題的解題思路或演算法思想:

先計算出幾堆紙牌的和,進而計算出紙牌堆的平均數量,通過每個紙牌堆當前數量和平均數量的對比,計算出每個紙牌堆缺少的紙牌數(如果是多出來的用負數表示),之後從第一堆開始,依次的向它的下一堆取走它需要的紙牌(如果是負數,就是從這一堆往它的下一堆送紙牌),即可完成問題

#include#includeint cardcount[105];

int cst[105];

int main()

printf("\n");

printf("一共幾堆紙牌:\n");

}}

紙牌均分問題

首先,如果有某序列 a i 則 sum n a i k 取最小值時,k為 a i 的中位數。因為如果是pos,則pos向靠近中位數的位置移動能更小 這個性質也能dp 有n個人站成一排,每個人有 a i 張紙牌,求最小移動次數使得每個人紙牌數一樣,一張紙牌交給旁邊的人記為一次移動。如果tot是n的倍數...

貪心 均分紙牌

時間限制 1 sec 記憶體限制 64 mb 提交 164 解決 95 提交 狀態 討論版 有n堆紙牌,編號分別為1,2,n。每堆上有若干張,但紙牌總數必為n的倍數。可以在任一堆上取若干張紙牌,然後移動。移牌規則為 在編號為1堆上取的紙牌,只能移到編號為2的堆上 在編號為n的堆上取的紙牌,只能移到編...

貪心 均分紙牌

題目鏈結 題目描述 有n堆紙牌,編號分別為 1,2,n。每堆上有若干張,但紙牌總數必為n的倍數。可以在任一堆上取若干張紙牌,然後移動。移牌規則為 在編號為1堆上取的紙牌,只能移到編號為2的堆上 在編號為n的堆上取的紙牌,只能移到編號為n 1的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。現在...