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

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

筛选

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

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

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

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

能量项链-链表(C++代码)

#思路先把最小值融合,如果有多个最小值,取能量最大的一组用链表的原因是有随机擦除操作,用vector会有内存移动,不过问题不大#代码```C++#include#includemain(){std::listlist;intn,e=0,t;std::cin>>n;while(n--&&std::cin

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

能量项链(找规律)

摘要:核心:找规律,最后一个数*(列表中依次两两相乘之和),不过最后两个数得分情况代码:自己的算法: n = int(input()) l = [int(x) for x in input().spli……

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

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

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

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