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

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

筛选

优质题解

✔✔✔Vector19行暴力解法[C++]

1.将所有珠子的能量存储到一个Vector里2.遍历所有珠子找到能量最小的那个珠子的下标:k3.聚合并算出此次能量:(k号珠子能量)\*(k-1号珠子能量)*(k+1号珠子能量)4.累加步骤3得出的能量并移除第k号珠子5.重复2~4步骤直至只剩一颗珠子```cpp#include#include#in

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

摘要:解题思路:    两颗珠子合并后,结合成一颗新的珠子,而其中第一颗珠子的尾标记和第二颗珠子的头标记会消失,第一颗珠子的头标记和第二颗珠子的尾标记则会保留下来,可以再与其他珠子相乘释放能量    由此可……

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

摘要:解题思路:    要得到最大值,每次聚合时把小的数消掉,这样后面聚合得到的值就会越大,如(5,3)(3,2)(2,10)(10,5)这样的一个序列其中2最小首先把2消去, 即 (3,2)和(2,10)……

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

**1、参照优质题解**这题没看懂,主要是思路很不清晰。该如何求这个最大的聚合数的思路没搞明白。看了题解后,勉强理解了。但并非自己的思路,日后应该重写。```cpp#include#includeusingnamespacestd;intmain(){intN,

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

######可以用队列模拟删除最小元素后,将元素与前驱和后继相乘直到只剩下一个元素```cpp#include#include#includeusingnamespacestd;intmain(){intN,x,min[101];queueball;cin>>N;for(inti=0;i>x;min[

蓝桥杯算法提高-能量项链-题解(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