题目要求

P1031题目链接

分析

我们一定要知道的是average,这个average其实就是每堆牌最终一定要达到的情况。

想要更简单的结果,那就可以用贪心策略,从某一侧开始,逐一的补齐或天选,反正就是达到均值即可。

接下来我们分析一下流程,从我们选好的一端的第一堆牌开始啦:

第一堆牌相差的牌只能由第二堆牌承担(给予或索要),把它补齐到要求的数额。
而第一堆牌达到要求了就不要管它,忽略即可,因为它唯一能影响和被影响的只是第二堆牌。
此时,第二堆牌就相当于新的第一堆牌,而一侧的第一堆牌已经是调好了,那就和没有一样,相当于只能继续向第三堆牌进发咯。
……重复上述操作……
如果当前牌直接就OK那就忽略本次并继续,否则每次调整就需要counter++。
某一堆牌被上一次调整以后变成负数是不要紧的,因为你正着看是被索取,反着看则是给予,可以说这样的步骤是可逆的。

分析到这份儿上,就可以写代码了啊~~

AC代码(Java语言描述)

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num = scanner.nextInt(), sum = 0, average = 0, counter = 0;int[] array = new int[num];for (int i = 0; i < num; i++) {int temp = scanner.nextInt();sum += temp;array[i] = temp;}scanner.close();average = sum / num;for(int i = 0; i < num; i++) {int temp = array[i] - average;if(temp != 0) {array[i+1] += temp;counter++;}}System.out.println(counter);}
}

用贪心策略均分纸牌(洛谷P1031题题解,Java语言描述)相关推荐

  1. 贪心の纪念品分组(洛谷P1094题题解,Java语言描述)

    题目要求 P1094题目链接 分析 经典的贪心思想,为什么是贪心呢?请看这位大佬的博客讲解,他讲的真的很好,orz. 我讲一下怎么用贪心吧. 其实贪心一般与排序相关,因为总要获取局部最优解嘛,不是最大 ...

  2. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  3. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  4. 铺设道路(洛谷P5019题题解,Java语言描述)

    题目要求 题目链接 分析 纯模拟,爆炸,数据量太大,然后参考dalaodalaodalao的博客了解本题的贪心算法,最终AC. AC代码(Java语言描述) import java.io.Buffer ...

  5. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

  6. 贪心策略构筑“奶牛铁塔”(洛谷P2676题题解,Java语言描述)

    题目要求 P2676题目链接 分析 哈哈哈,好一个"超级书架"+"奶牛铁塔",哈哈哈-- 这题就是用贪心策略,需要排一个序,然后每次选最高大强壮的奶牛加入&qu ...

  7. 贪心的Mixing Milk(洛谷P1208题题解,Java语言描述)

    题目要求 P1208题目链接 分析 要对奶农的价格进行排序,优先选择低价格的牛奶,选完当前奶农的全部牛奶再选价格稍高的一位奶农的牛奶,依次选择-- 贪心体现在每次优先选择最省钱的买法. 读的数据可能很 ...

  8. 贪心 or 动态规划 求解“最大字段和”问题(洛谷P1115题题解,Java语言描述)

    题目要求 P1115题目链接 分析 练习DP,势在必行! 状态转移方程:f[i]=max(f[i−1]+n[i],n[i])f[i]=max(f[i-1]+n[i], n[i])f[i]=max(f[ ...

  9. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)

    题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...

最新文章

  1. 常见的 IO 模型有哪些?Java 中 BIO、NIO、AIO 的区别?
  2. 基于深度学习的目标检测的研究进展2
  3. 芯片设计抽象层及其设计风格
  4. java程序死了telnet还有用吗_java实现telnet连接操作 改进
  5. java删除不,Java文件不能删除,该怎么解决
  6. 谷歌浏览器不能上网_谷歌浏览器插件下载及安装教程!
  7. Copy Clone
  8. String、StringBuiler、StringBuffer的区别
  9. iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪
  10. 离散数学:等价关系与集合覆盖
  11. HP1010 不能连续打印维修一例
  12. 哪些事是考研前不知道,考研后才知道的?
  13. 计算机内存加速,电脑内存运行速度如何提升
  14. 【立项建议书】苏科大校园app立项建议书
  15. 如何理解容器,容器化的由来?它有何优缺点?
  16. 大数据相关开源项目汇总
  17. 输入数字,控制台打印输出大写,如:输入12 ,控制台打印输出:壹拾贰圆
  18. 想成为注塑模具设计高手:这个你一定要懂
  19. 爬虫项目实操二、爬取“下厨房”网站的菜名、所需材料、和菜名所对应的详情页URL
  20. 电子设计教程10:电荷泵倍压输出电路

热门文章

  1. sed 解释正则表达式
  2. Android 滑动菜单框架--SwipeMenuListView框架完全解析
  3. Leetcode 142 Linked List Cycle II
  4. 感觉又学到了不少,在这里写下来,但也有一个问题,不知道是为甚吗?
  5. 百度UEditor编辑器使用(二)
  6. java中ArrayList用法详解,基本用法(含增删改查)
  7. 关于js的一些常用小知识点(持续更新)
  8. 浪潮服务器5112面板灯_SA5112M4 – IPMI设置
  9. linux 删除单个创建文件夹,Linux 删除文件夹和创建文件的命令
  10. 本地服务器的音乐如何才能播放视频文件夹,mx播放器如何添加本地文件 添加本地文件设置方法...