刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

金箍棒

题目描述:

淘气的悟空变出了N根高度各不相同的金箍棒(1≤高度≤1000),并排列成一排。悟空可以对每根金箍棒施法,让金箍棒高度变短或者变长,但每一次施法只能使一根金箍棒变短1个高度或者变长1个高度。

现在悟空想通过施法将K(K≤N)根相邻的金箍棒高度变为相同,且要求施法的次数最少,请你帮助悟空计算出最少需要施法几次可以使K根相邻的金箍棒高度变为相同。

例如:N=3,K=2,3根金箍棒初始高度分别为:3,6,1。

第一次对高度为3金箍棒施法变长1个高度,变为4;

第二次对高度为6金箍棒施法变短1个高度,变为5;

第三次对高度为4金箍棒施法变长1个高度,变为5;

2根相邻的金箍棒高度变为相同,最少施法3次。

输入描述

第一行输入两个正整数N,K (1≤K≤N≤10000),N表示金箍棒的根数,K表示需要将K根相邻的金箍棒高度变为相同,两个整数之间以一个空格隔开

第二行输入N个各不相同的正整数 (1≤正整数≤1000),表示N根金箍棒的初始高度,N个整数之间以一个空格隔开

输出描述

输出一个整数,表示悟空最少需要施法几次可以使K根相邻的金箍棒高度变为相同

样例输入

3 2
3 6 1

样例输出

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

为了使K根相邻的金箍棒高度变为相同,我们需要对金箍棒进行高度调整。由于每次只能使一根金箍棒变短或变长1个高度,我们需要考虑如何以最少的次数调整金箍棒的高度。首先,我们需要找到高度差最大的两根金箍棒。假设这两根金箍棒的高度分别为h1和h2,且h1 < h2。我们可以从高度h1开始,通过连续变长的方式将高度调整到h2,或者从高度h2开始,通过连续变短的方式将高度调整到h1。这两种方式中,选择次数较少的那一种即可。具体步骤如下:1. 找到高度差最大的两根金箍棒,假设它们的高度分别为h1和h2,且h1 < h2。2. 计算高度差diff = h2 - h1。3. 如果diff是偶数,那么从h1开始,每次变长1个高度,需要diff/2次;从h2开始,每次变短1个高度,也需要diff/2次。取两者中较小的次数作为调整次数。4. 如果diff是奇数,那么从h1开始,每次变长1个高度,需要(diff+1)/2次;从h2开始,每次变短1个高度,需要diff/2次。取两者中较小的次数作为调整次数,并加1。根据上述思路,我们可以编写算法来解决这个问题。具体算法如下:1. 遍历金箍棒数组,找到高度差最大的两根金箍棒,假设它们的高度分别为h1和h2,且h1 < h2。2. 计算高度差diff = h2 - h1。3. 根据diff是偶数还是奇数,选择合适的调整方式,并计算调整次数。4. 返回调整次数。

解析:

【喵呜刷题小喵解析】:
对于这个问题,我们首先需要明确目标:使K根相邻的金箍棒高度变为相同,并且要求施法的次数最少。

观察题目中的例子,我们可以发现,为了使两根相邻的金箍棒高度相同,我们需要对它们进行高度调整。具体地,我们可以选择让其中一根金箍棒变长,让另一根金箍棒变短,或者对两根金箍棒都进行相同次数的变长或变短操作。

考虑到每次只能使一根金箍棒变短或变长1个高度,我们需要选择最少次数的操作来达到目标。为了实现这一点,我们可以按照以下步骤进行:

1. 首先,找到高度差最大的两根金箍棒,假设它们的高度分别为h1和h2,且h1 < h2。
2. 计算高度差diff = h2 - h1。
3. 如果diff是偶数,那么从h1开始,每次变长1个高度,需要diff/2次;从h2开始,每次变短1个高度,也需要diff/2次。取两者中较小的次数作为调整次数。
4. 如果diff是奇数,那么从h1开始,每次变长1个高度,需要(diff+1)/2次;从h2开始,每次变短1个高度,需要diff/2次。取两者中较小的次数作为调整次数,并加1。

这样,我们就可以通过最少次数的操作使两根相邻的金箍棒高度相同。对于K根相邻的金箍棒,我们可以按照类似的方式进行操作,只不过需要找到高度差最大的K根金箍棒,并分别计算它们之间的高度差,然后取其中的最小值作为最少需要施法的次数。

根据以上分析,我们可以编写算法来解决这个问题。算法的基本思路是:首先找到高度差最大的K根金箍棒,然后计算它们之间的高度差,并取其中的最小值作为最少需要施法的次数。最后,返回这个次数作为结果。
创作类型:
原创

本文链接:金箍棒 题目描述: 淘气的悟空变出了N根高度各不相同的金箍棒(1≤高度≤1000),并排列成一排。悟

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share