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

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

筛选

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

能量项链-题解

解题思路:为了可以得到能量的最大值,最为简单的思路即为将最小的数字放在两数字的中间被吃掉,逐渐过滤掉最小的数字,最终得到能量总值便是最大值。以样例输入为例子:23510得到其中最小的数字为2,要将它吃掉,先通过10-2-3的组合,将2这个数字吃掉。

c++ 暴力yyds

解题思路:找n-1次最小值然后左右相乘就是最大的值注意事项:用循环链表构造太复杂,用数组需要自己定义函数来找最小值左右两边(v函数),每次循环都要从最左边的非去掉项开始,去掉项赋值为-1;参考代码:#includeusingnamespacestd;intv(inta[],

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

用二维数组保存数据,例如输入23510则ip[1][]={2,3},ip[2][]={3,5},ip[3][]={5,10},ip[4][]={10,2}观察发现,把最小的值先消去所得到的和最大,也就是说对ip[n][1]进行排序,然后从最小的开始聚合,

蓝桥杯算法提高-能量项链(吕德华式算法)

解题思路:关键点就在于对于如何才能取得最大值的分析,事实上可以这样来分析:越小的数,用到的次数越多,那么整体的值就越小,所以问题就在于,如何先处理最小的值,这里我直接采用的式一位数组来解决的,算是比较笨的方法。参考代码:#includeintwoc(inta[],

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

###思路:要找出能量最大的,每次因合成而消去的能量必须是最小的,因此就要每次找到头标记是最小的,然后与它前面的珠子合成,再把这个珠子去掉,再重复上述步骤,等就剩一颗珠子的时候停止###代码:```javapublicstaticvoidmain(String[]args){Scannerreader