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

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

筛选

能量项链 (C++代码)

解题思路:注意事项:参考代码://区间动规//重点就是将整体划分为区间,小区间之间合并获得大区间//状态转移方程的推导如下//一、将珠子划分为两个珠子一个区间时,这个区间的能量=左边珠子*右边珠子*右边珠子的下一个珠子//二、区间包含3个珠子,

dp动态规划解法

一个区间的能量=左边的珠子*右边的珠子*右边下一个珠子合并两个区间的能量=左边区间的能量+右边区间的能量+左区间的左珠子*右区间的左珠子*右区间的下一个珠子。```cpp#include#include#includeusingnamespacestd;typedeflonglongLL;namesp

基于深搜的答案错误50%的方法

总的来说就是用一个二维数组充当二元组,存入头尾标记,然后从第一个珠子到最后一个珠子不断试探的过程。```cpp#define_CRT_SECURE_NO_WARNINGS#include#definemaxn100usingnamespacestd;inta[maxn][maxn];intn;intd
优质题解

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

###解题思路我以前写得怎么这么抽象啊,这都是啥啊,好羞耻,改了求最大能量的方法是先把小的数字吞了,然后剩下的都是大数字一共要吞n-1次,每次都求当前最小的数字然后吞掉(这大概就是贪心算法)比如2,4,3,6,5能量最大的连接方式:5-2-4————404-3-6————725-4-6————1206

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

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

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

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

蓝桥杯算法提高-能量项链-题解(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++代码)贪心思想

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