8月22日贪心法课件.pptVIP

  • 3
  • 0
  • 约3.94千字
  • 约 15页
  • 2017-08-19 发布于河南
  • 举报
8月22日贪心法课件

均分纸牌 [问题描述]? 有N堆纸牌,编号分别为1,2,….N。每堆上有若干张, 但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的纸牌,只能移到编号为N-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如N=4,4堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的:从③取4张牌放到④(9 8 13 10)→从③取3张牌放到②(9 11 10 10)→从②取1张牌放到①(10 10 10 10)。 [ 输 入 ]: N ( N 堆纸牌,1≤N≤100) A1,A2,….An (N 堆纸牌,每堆纸牌初始数,1≤Ai≤10000) [ 输 出 ]:所有堆均达到相等时的最少移动次数。 [输入输出样例];输入: 4 9 8 17 6 ;问题是,在从第i+1堆中取出纸牌补充第i堆的过程中,可能会出现第i+1堆的纸牌数小于零(list[i+1]-(ave-list[i])0 )的情况,这时可以理解为一个“先出后进”的栈。由于纸牌的总数是n的倍数,因此后面的堆会补充第i+1堆

文档评论(0)

1亿VIP精品文档

相关文档