摘要:
【问题描述】 在社会经济高速发展的今天,借助高科技手段,组建太空战队的愿望就快实现了。 战队属下有N个航天员。作为空军选拔上来的佼佼者,每个航天员都有与生俱来的骄傲——他们每个人都认为自己是最强的或者是第二强的。这样,如何分组就成了司令官的难题了。司令官分组的方法是这样的: 步骤1:任意选择一个未被分组的航天员,记为当前航天员. 步骤2:把当前航天员分入一个新的组. 步骤3:如果当前航天员心目中最强的那个航天员(记为Q航天员)还没有被分组,那么把Q航天员分入当前航天员所在组,并把Q航天员作为当前航天员并重复步骤3;如果Q航天员已经被分组,那么重复步骤1,直至所有航天员都被分入了某... 阅读全文
摘要:
一、纸牌均分 给定n堆纸牌,每堆纸牌有若干张,现要使着n堆纸牌平均分配,即每堆张数相等。每次移动可以使一堆牌向其左边的一堆或右边的一堆移动若干张牌。求最少移动次数。 这是我们最熟悉的纸牌均分问题。正确的解法是贪心。我们可以知道均分后每堆纸牌的张数,将现在的牌数减去,就可以得到差值b[i],表示第i堆牌比目标牌数多几张或少几张(b[i]有正有负)。然后我们从第一堆开始往后做,我们把第i堆多出来的b[i]张牌直接移到i + 1上,b[i + 1] += b[i],然后移动数bns加一,如果b[i]为0则不用。注意,此处的关键在于,无论b[i]为正为负都会往右移,即使是负数也没有关系,因为我们这.. 阅读全文