题解 1255: 蓝桥杯算法提高-能量项链

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯算法提高-能量项链-题解(C++代码)贪心思想

这一题可以用贪心来做,想象有n个数字围成一个圈,然后每次选取最小的一位数作为中间数合并,经过n-1次合并后得到的总能量即为最大值。例如425310第一次合并:10x2x5=1005310第二次合并:5x3x10=150510第三次合并:10x5x10=500答案为:750ps:代码打的太丑,不发了。

蓝桥杯算法提高-能量项链-题解(C++代码)

题意描述有问题,按照题意明显是按顺序合并,但是结果却是可以跳着进行。第一种第一种按题意顺序如1,2,3,4,要想结果最大,最后剩下的和开始的一定是最大的数。上面最大的是4,4两边的是1,3,结果为:4*1*2+4*2*3+4*3*4=804*3*2+4*2*1+4*1*4=48可看出4*(1*2+2*

蓝桥杯算法提高-能量项链-题解(C++代码)(list)

####思路:每次删除最小的,可以尽可能保留较大元素,从而使较大元素参与更多的相乘。删除操作较多,所以采用链表list.```cpp#include#includeusingnamespacestd;intmain(){intn,sum=0;cin>>n;listball;for(inti=0;i>a

蓝桥杯算法提高-能量项链 (Java代码)

环形区间dp将环形变为线形1234..N123..N-1珠子i的头尾标记分别为b[i][0]b[i][1]状态转移方程dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]+b[i][0]\*b[k+1][0]\*b[j][1])代码如下:```javaimportjava

蓝桥杯算法提高-能量项链-题解(Python代码)

本题的解题规律是把含有从大到小的的数字的元组消去,最后只剩下最大数字的一个元组。比如:28510生成的序列是(2,8),(8,5),(5,10),(10,2)把数字排序就是:25810结合的顺序是:①消去2结合成(10,8),能量是:10×2×8=160则序列变为(10,