在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有 N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标 记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗 能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为mrn(Mars单位),新产生的珠子的头标记为m, 尾标记为n。
需要时,Mars人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。
例如:设N=4,4颗珠子的头标记与尾标记依次为(2,3) (3,5) (5,10) (10,2)。我们用记号◎表示两颗珠子的聚合操作,(j◎k)表示第j,k两颗珠子聚合后所释放的能量。则第4、1两颗珠子聚合后释放的能量为:
(4◎1)=1023=60。
这一串项链可以得到最优值的一个聚合顺序所释放的总能量为
((4◎1)◎2)◎3)=1023+1035+10510=710。

输入
第一行是一个正整数N(4≤N≤100),表示项链上珠子的个数。第二行 是N个用空格隔开的正整数,所有的数均不超过1000。第i个数为第i颗珠子的头标记(1≤i≤N),当i〈N时,第i颗珠子的尾标记应该等于第i+1颗 珠子的头标记。第N颗珠子的尾标记应该等于第1颗珠子的头标记。
至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。

输出
只有一行,是一个正整数E(E≤2.1*10^9),为一个最优聚合顺序所释放的总能量

样例输入
4
2 3 5 10
样例输出
710
这题目很是迷惑人,本人刚开始做的时候以为是按照顺时针下去,用联合后的珠子跟下一个珠子合璧,其实这是一种特殊情况,真正的思路应该是,从顺时针开始找,找到两个最小的珠子先联合,然后再找两个最小的珠子联合,此刻的两颗珠子不一定含有原先的珠子。
自然,若是你没有想到从最小的珠子联合开始,那就计算每一种可能,但这种比较可怕,因为第一次两颗珠子联合的情况就有多种,然后从第二次开始,又有多种联合状况,而第二次中的多重联合里的其中一种联合,又有多重联合。这其实也有规律,认真想清楚应该就可以了,但比较废脑筋。
按照第一种解题思路:我们可以知道,最小的两颗珠子,无非是一颗头标记最小,一颗尾标记最小。一颗珠子有两个标记,定义为x,y。但是有多颗珠子,我们要记录他们的顺序吧?也就是位置,1, 2,3 ,4……,所以我们可以定义一个结构体,然后用一个结构体数组来表示这三个变量。

#include<bits/stdc++.h>
using namespace std;
typedef struct node{int x,y;
}node;
int main(){//定义结构体数组node hyb[101];int n,x1,i=1;cin>>n;//赋值数组每一个xwhile(i<=n){cin>>x1;hyb[i].x=x1;i++;}//赋值每一个yhyb[i-1].y=hyb[i-n].x;while(i>1){i--;hyb[i-1].y=hyb[i].x;}int _count=0,a1=1,b1=1;for(int i=1;i<n;i++){//n个珠子最多有n-1次聚合。hyb[0].x=hyb[a1].x;hyb[0].y=hyb[a1].y;a1=1,b1=1;for(int j=1;j<=n;j++){//这里求每个hyb[i]里x,y谁最小,最大。if(hyb[j].x==0&&hyb[j].y==0){continue;}if(hyb[j].x<=hyb[0].x){a1=j;hyb[0].x=hyb[j].x;}if(hyb[j].y<=hyb[0].y){b1=j;hyb[0].y=hyb[j].y;}}_count+=hyb[b1].x*hyb[b1].y*hyb[a1].y;hyb[a1].x=hyb[b1].x;hyb[b1].x=0;//珠子联合后消失不见。hyb[b1].y=0;}cout<<_count<<endl;return 0;
}

注意:一个数组应该从下标0开始的,写代码也应该是这样,但对于一些复杂的题目,最后从下标1开始,这样我们留出下标0,可以方便做很多事情,比如这题目用到的排序。

蓝桥杯训练题,能量项链,c++/c语言,codeblocks编译。相关推荐

  1. 短时能量法代码c语言,[蓝桥杯][算法提高]能量项链 (Python代码)

    # Python求解能量项链 对于这个题,刚入手可能题目就会吸引到很多朋友,翱翔Mars星:joy:,哈哈哈.进入正题,一般这个题的第一印象就是采用双向链表,但是不需要这么难,你只需要构造一个伪的循环 ...

  2. 蓝桥杯题目练习(能量项链)

    算法提高 能量项链 原题链接:能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有 N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且, ...

  3. [蓝桥杯][算法提高]能量项链(区间dp)

    题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有 N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一 ...

  4. 蓝桥杯训练题1427: [蓝桥杯][2013年第四届真题]买不到的数目【筛选符合题目的数字。有点类似筛素数】

    题目链接: https://www.dotcpp.com/oj/problem1427.html 题目描述: 思路: 首先就是感觉这个题目好像有点不严谨.题目说的是输入为两个正整数,而且只要不大于10 ...

  5. 蓝桥杯真题——跑步锻炼(c语言)

    目录 一.题目描述 二.解题思路 三.操作代码 一.题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 小蓝每天都锻炼身体. 正常情况下,小蓝每天跑 1 千米.如果某天 ...

  6. 蓝桥杯真题(路径)C语言

    题目 小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图 中的最短路径. 小蓝的图由 2021 个结点组成,依次编号 1 至 2021. 对于两个不同的结点 a, b,如果 a 和 b ...

  7. 2020蓝桥杯真题回文日期 C语言/C++

    题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日.因为如果将这个日期按 "yyyymmdd" 的格式写成一个 8 位数是 202002 ...

  8. python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在19351936年应邀来中国清华大学讲学。。。

    python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学... 问题描述 全排列模板: 美国数学家维纳(N. ...

  9. 第十届蓝桥杯真题题解

    目录 一.组队(DFS) 二.年号字串(进制转换) 三.数列求值 四.数的分解 五.迷宫(BFS) 六.特别数的和(暴力) 七.完全二叉树的权值 一.组队(DFS) 题目描述 本题为填空题,只需要算出 ...

最新文章

  1. 深入理解JVM虚拟机(十):Java内存模型与多线程
  2. WINCE6.0+S3C6410下的DM9000A驱动
  3. MySQL高级 - 案例 - 系统性能优化分析
  4. 分享21款漂亮的WordPress高级主题
  5. H264中的SPS、PPS提取与作用
  6. 云计算的发展及应用--演讲用PPT
  7. 如何估算网站日承受最大访问PV
  8. 史上最强Dubbo面试26题和答案:核心组件+服务治理+架构设计等
  9. 2021-08-22监听器实现在线客户端统计
  10. Linux centosVMware mysql用户管理、常用sql语句、mysql数据库备份恢复
  11. 出租车轨迹数据地图匹配
  12. windows批处理命令大全
  13. 扬州大学计算机科学与技术怎么样,用实力说话!这3所“低调”的大学,有望成为“双一流”建设高校...
  14. 国内外顶尖人工智能实验室/AI实验室推荐!
  15. 160603、使用pd4ml.jar和ss_css2.jar转pdf的工具类
  16. Hive ANALYZE NOSCAN
  17. 怎样才能成为一名有创造力的领导者?
  18. html5均线图源码,通达信相当好的天机均线主图源码
  19. 浙江大学求是科学班计算机,浙江大学“汉语言文学(求是科学班)”2020年招生简章...
  20. Android init.rc介绍及其语法

热门文章

  1. 高德地图开发手册 php,地图控件-参考手册-地图 JS API | 高德地图API
  2. Oracle AWR报告详细分析
  3. Java输入输出流代码示例
  4. 文科生也能看懂的算法图解
  5. E/libc: Access denied finding property “persist.vendor.log.tel_dbg“Permission Denial: can‘t access
  6. 小鹅通六周年:新知识服务时代,做好企业的“共享CTO”
  7. hadoop开启后用http访问出错
  8. morgan stanley 面试资料(一)
  9. UWP实现ListBox颜色相间显示
  10. 密码学 加密文件系统