- 博客(6)
- 收藏
- 关注
原创 合并胡萝卜堆
题目:前情提要:小白兔在台阶上发现了亿堆胡萝卜,于是他又登上了台阶打算搬运一点胡萝卜。但是,当他来到台阶顶时,发现胡萝卜都散乱的分成了好多堆,于是小白兔决定把所有的胡萝卜合并成一堆胡萝卜。但由于小白兔太小了,一次合并只能合并两堆胡萝卜。由于小白兔在合并完成之后,还要搬运一些胡萝卜回到幼稚园,所以他需要节省体力。那么如何合并所有胡萝卜堆可以使消耗的体力最小?假设每个胡萝卜重量均为1,每堆胡萝卜的数量即为重量,消耗的体力与重量成正比,即,可以假定合并重量为1和3的胡萝卜堆消耗的体力为1+3 = 4
2022-09-28 15:40:42
548
原创 C语言实现全排列(dfs方法)
首先判断mark[i]==0(此时i==1),进入赋值部分,首先标记mark[i]=1,表示第一个点已经被搜索过(也就是此次排列的第一个元素已经确定),然后进行赋值,a[1]=i,第一个元素被赋值1。首先判断首先判断mark[i]==1(此时i==1),故不进入循环,i++,i=2时mark[i]==0,进入循环。同上一样,标记mark[2]=1,赋值a[2]=2,随后进入第三个元素的处理。(这个step具体的作用在于排列元素的标号,在深搜的过程中,会使用a[step]=i的方式来给以排列列表进行赋值)
2022-09-27 17:23:55
10018
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人