洛谷P1090 [NOIP 2004 提高组] 合并果子 详解
题目如下:
此题解法我用的是哈夫曼编码
跟着下方我的代码思路来:
运用双指针,在两个数组里面来回操作,找最小的两个值,再将其和加入ans里面
memset初始化:第二个参数里面若填127,这个数字,则会将数组里面的每个值初始化为接近int类型上限的正数,若为128,则初始化为接近int下限的负数
我认为你可能最大不理解的地方是为啥ans就是最终的结果,但是你要从整体上去看,不要关注于ans,
题目其实本意是要我们找到最小的n-1个数,相加之后再加上总共的数字,也即是若有3个数,找最小的两个相加,此时相当于将最小的两个移动了,之后其和再与最后一个数相加,此时相当于将此所有数都移动,也即符合题意