试题 算法训练 石子游戏

资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
  石子游戏的规则如下:
  地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x+1)×(y+1),对地上的石子堆进行操作直到只剩下一堆石子时停止游戏。
  请问在整个游戏过程中操作的总得分的最大值是多少?
输入格式
  输入数据的第一行为整数n,表示地上的石子堆数;第二行至第n+1行是每堆石子的个数。
输出格式
  程序输出一行,为游戏总得分的最大值。
样例输入
10
5105
19400
27309
19892
27814
25129
19272
12517
25419
4053
样例输出
15212676150
数据规模和约定
  1≤n≤1000,1≤一堆中石子数≤50000
贪心算法:
1:先排序
2:每一次取出最大的两个石堆进行运算,直到剩下最后一对


import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;public class 石子游戏 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();ArrayList<Long> list=new ArrayList<>();                 //创建一个集合保存数据long sum=0;for(int i=0;i<n;i++)                              {list.add(sc.nextLong());}Collections.sort(list);                                   //对集合进行升序排序while(list.size()>1)                                  //如果只剩下一个石堆后就结束循环{long s=(list.get(list.size()-1)+1)*(list.get(list.size()-2)+1);    //按题目的要求拿最大的两个值相加long ss=list.get(list.size()-1)+list.get(list.size()-2);     //两个最大石堆合成一个新的石堆,这个石堆必然是剩下的所有石堆最大的一个sum=sum+s;                                                     //将每一次的得分相加list.remove(list.size()-1);                                      //删除刚刚相加的两个石堆list.remove(list.size()-1);                                        //删两次list.add(ss);                                                  //插入新石堆}System.out.print(sum);}}

java 蓝桥杯 石子游戏(题解)相关推荐

  1. java 蓝桥杯 数字游戏

    试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...

  2. java蓝桥杯练习 拉马车

    java蓝桥杯练习 拉马车 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 小的时候,你玩过纸牌游戏吗? 有一种叫做"拉马车"的游戏,规则很简单,却很吸引小朋友. ...

  3. 2021 第十二届 蓝桥杯 双向排序 题解 栈+文艺平衡树

    2021 第十二届蓝桥杯 双向排序 题解 栈+文艺平衡树 题目描述 思路 实现方法 代码 只用栈 只用栈的代码 题目描述 原题链接:https://www.lanqiao.cn/problems/14 ...

  4. 标题 日期问题java蓝桥杯,日期类的使用(java)-蓝桥杯

    蓝桥杯日期问题常考,java提供了日期类很方便: //日历类 Calendar c = Calendar.getInstance(); // 获取实例化对象 Date date =c.getTime( ...

  5. java蓝桥杯练习 学做菜

    java蓝桥杯练习 学做菜 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 涛涛立志要做新好青年,他最近在学做菜.由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜, ...

  6. java蓝桥杯练习 蜜蜂飞舞

    java蓝桥杯练习 蜜蜂飞舞 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 "两只小蜜蜂呀,飞在花丛中呀--" 话说这天天上飞舞着两只蜜蜂,它们在跳一种奇怪的舞 ...

  7. Java 蓝桥杯 我们的征途是星辰大海

    Java 蓝桥杯 我们的征途是星辰大海 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代 ...

  8. JAVA 蓝桥杯 算法提高 阮小二买彩票

    JAVA 蓝桥杯 算法提高 阮小二买彩票 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 在同学们的帮助下,阮小二是变的越来越懒了,连算账都不愿意自己亲自动手了,每天的工作就是坐在电 ...

  9. java蓝桥杯练习 幸运数

    java蓝桥杯练习 幸运数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成. 首先从1开始写出 ...

最新文章

  1. 【搜】mysql压缩包减肥
  2. 3.1.3 覆盖与交换
  3. 字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?
  4. sd卡有多个android文件夹,android - 如何adb拉出SD卡中存在的文件夹的所有文件
  5. 在c#中使用WINDOWS API(转)
  6. 【学习率预热】Warm up
  7. Android系统性能优化(56)---APP性能优化
  8. C语言之do_while输出菱形
  9. WampServer中MySQL中文乱码解决
  10. 中小企业网络推广如何找到切入点
  11. win7桌面快捷方式图标修复方法
  12. Counting Stars HDU - 6184
  13. 三流Offer看薪资、二流的Offer看平台,一流的Offer看...
  14. 通过css布局实现去掉window.print()打印界面的页眉页脚
  15. “电脑族”保健六项注意
  16. php订单超过未支付,商城订单未支付30分钟自动取消
  17. 设计模式总结--------调停者模式
  18. vscode win10笔记本 蓝屏_遇到win10电脑蓝屏怎么办_简单解决win10蓝屏的方法
  19. Day19 - 摄像、拍照,滤镜中文指南
  20. 乱码解决(二)——文件转码

热门文章

  1. solr 高并发_Solr搜索引擎 — SolrCloud介绍和环境准备
  2. java cfg_如何使用antlr生成Java CFG(控制流图)?
  3. oracle左连接没用_oracle左外连接不显示正确的空值
  4. 贝叶斯估计和极大似然估计
  5. python的help怎么用_python的help函数如何使用
  6. windows下的工具链 树莓派_Windows下交叉编译Qt 5.14.2至树莓派平台 QEMU模拟树莓派...
  7. 自锁时间电路plc_PLC对两台三相交流电动机联锁启停控制
  8. 笑傲江湖手3D游服务器端文件,新笑傲江湖手游7月2日部分服务器数据互通预告...
  9. Evaluation or Assessment
  10. ext中的EXT.XTemplate()