题目描述

小招正在玩一款修塔游戏:系统中有n座高塔,每座高塔由若干个高度相同的方块堆砌而成。修塔游戏的规则为:

  1. 每次从最高塔的塔尖拿走一个方块
  2. 每次在最低塔的塔尖堆砌一个方块

小招每次只能完成上述两个动作中的一个动作。游戏的目标是使n座高塔中至少有k座高塔的高度相同,请问小招最少需要多少次才能完成游戏。

输入描述:

输入共两行,第一行为n和k(1≤k≤n≤200000),第二行为n座塔的高度组成的数组 a1, a2, …an(1≤aj≤10000)。

输出描述:

输出值为最少需要多少次动作才能完成游戏。

示例1

输入

6 5
1 2 2 4 2 3

输出

3

AC代码 [ JAVA ]

public class Main {private static int moveBricksCount(int n, int k, int[] bricks, int sum) {int count = Integer.MAX_VALUE;Arrays.sort(bricks);int i = 0, si = 0, j;while (i < n) {j = i;while (j < n && bricks[j] == bricks[i]) {sum -= bricks[i];j++;}int nd = Math.max(0, k - j + i);if (nd == 0) {count = 0;}if (j >= k) {count = Math.min(count, i * bricks[i] - si - (i - nd));}if (n - i >= k) {count = Math.min(count, sum - (n - j) * bricks[i] - (n - j - nd));}count = Math.min(count, i * bricks[i] - si + sum - (n - j) * bricks[i] - (n - (j - i) - nd));si += bricks[i] * (j - i);i = j;}return count;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt(); int k = sc.nextInt(); int[] bricks = new int[n];int sum = 0; for (int i = 0; i < n; i++) {bricks[i] = sc.nextInt();sum = sum + bricks[i];}System.out.println(moveBricksCount(n, k, bricks, sum));}
}

招商银行笔试题之修塔游戏相关推荐

  1. 数据分析真题日刷 | 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷

    今日真题 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷(来源:牛客网) 题型 客观题:单选5道,不定项选择10道 主观题:问答4道 完成时间 90分钟 牛客网评估难度系数 ...

  2. 招商银行笔试题之跳格子游戏

    假设你正在玩跳格子(所有格子排成一个纵列)游戏.需要 跳完n 个格子你才能抵达终点. 每次你可以跳 1 或 2 个格子.你有多少种不同的方法可以到达终点呢? 注意:给定 n 是一个正整数. AC代码: ...

  3. 互联网公司招聘--阿里巴巴--游戏运营--2015年笔试题

    互联网公司招聘–阿里巴巴–游戏运营–2015年笔试题 互联网公司招聘–阿里巴巴–游戏运营–2015年笔试题 互联网公司招聘–阿里巴巴–游戏运营–2015年笔试题 1.以下哪款不是手游网游___d__. ...

  4. 2019面试/笔试题(算法题)总结

    实战链接:https://www.acwing.com/activity/content/8/ Google KickStart 2019 A轮 1. 训练 题目描述 作为一名学校足球教练,你的任务是 ...

  5. 2022年100家公司真实的面试题笔试题汇总

    [1.中科软] 笔试题 1.谈谈你对测试的理解 2.你三年的职业规划 3.你对加班的看法?是否可以加班? 4.你心目中理想的公司怎么样?理想的工作环境?理想的同事关系? 5.你觉得这笔试答的如何?优势 ...

  6. 全网独家·首发2022年100家公司真实的面试题笔试题汇总

    [文章末尾给大家留下了大量的福利] [1.中科软] 笔试题 1.谈谈你对测试的理解 2.你三年的职业规划 3.你对加班的看法?是否可以加班? 4.你心目中理想的公司怎么样?理想的工作环境?理想的同事关 ...

  7. 华为2016校园招聘上机笔试题

    华为2016校园招聘上机笔试题 > 扑克牌大小 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A,2各4张,小王1张,大王1张.牌面从小到大用如下字符和字符串表示(其中,小写joke ...

  8. 十月下旬腾讯,网易游戏,百度盛大迅雷校园招聘笔试题集锦(10.25)

    十月下旬腾讯,网易游戏,百度最新校园招聘笔试题集锦 引言 笔试啊,笔试,面试啊,面试,找工作啊,找工作.此文十月百度,阿里巴巴,迅雷搜狗最新面试十一题已经整理了最新的面试题70道,本文依次整理腾讯,网 ...

  9. 十月下旬腾讯 网易游戏 百度迅雷校园招聘笔试题集锦 第271 330题

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 十月下旬 ...

  10. 2012九月十月腾讯,网易游戏,百度最新校园招聘笔试题

    十月下旬腾讯,网易游戏,百度最新校园招聘笔试题集锦(第271-330题) 引言 此文十月百度,阿里巴巴,迅雷搜狗最新面试十一题已经整理了最新的面试题70道,本文依次整理腾讯,网易游戏,百度等各大公司最 ...

最新文章

  1. [讨论]你的女朋友值多少钱?
  2. 软件系统维护是一项不吸引人的工作_测试人员必须了解的软件测试工作规范
  3. java中super关键字_java中super关键字有什么用法
  4. java定时执行一次_java Timer(定时调用、实现固定时间执行)
  5. 机器学习 来源框架_机器学习的秘密来源:策展
  6. 语言认知偏差_认知语言学可以教给开发人员什么
  7. hello ,test livewriter
  8. 电子数字 网易游戏在线笔试 第一题 hihocoder
  9. linux引导过程和服务控制
  10. 企业级应用与互联网应用的区别?
  11. 在测试中发现错误,不要着急去改,静下心来,想一想错误的关联性( 错误展开确认 )。
  12. 如何快速掌握计算机知识,怎样快速学会电脑 学电脑的5种方法推荐
  13. SpringCloud Feign使用详解
  14. 用js判断空对象的几种方法
  15. html网页转换swf格式,swf格式转换器 轻松将swf转mp4(swf转avi)视频格式
  16. Adbyby无法更新规则的解决方案
  17. 导入的素材PS突然很卡,但是内存足够、素材图层也不多。。。该怎么办呢????
  18. flask读书笔记-flask web开发
  19. Mysql 安装,及其闪退的问题解决
  20. LeetCode_OJ【262】Trips and Users

热门文章

  1. bzoj4816: [Sdoi2017]数字表格
  2. 3D Vision--生成空间任意圆柱及任意直线
  3. 用Unity同时开发【微信小游戏】【安卓】【IOS】游戏#5.5.1 窗口管理器
  4. Java基本sql_SQL基本语句
  5. 【视频】离职创业感悟
  6. 如何更改Apple Watch的方向
  7. 差模、共模、奇模、偶模的区别与差异
  8. LR性能测试Web Page Breakdown分析篇
  9. 英语四级词汇量测试软件,大学英语四级词汇量要求及自测卷
  10. Openstack平台neutron模块之网络基础概念