早教吧 育儿知识 作业答案 考试题库 百科 知识分享

我有一个石子合并问题但是只能做出最大值最小值求不出来谁能帮帮忙补下求最小值那段程序啊!石子合并问题:在一个圆形操场的四周摆放着n堆石子,现要将石子有次序地合并成一堆.规

题目详情
我有一个 石子合并问题 但是只能做出最大值 最小值求不出来 谁能帮帮忙补下求最小值那段程序啊!
石子合并问题:
在一个圆形操场的四周摆放着n堆石子,现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分.试设计一个算法,计算出将n堆石子合并成一堆的最少得分和最大得分.
算法设计:对于给定n堆石子,计算合并成一堆的最小得分和最大得分.
数据输入:由文件input.txt提供输入数据.文件的第一行是正整数n,1
▼优质解答
答案和解析
我实现了一下,经验证是对的.
下面是代码:(希望能给你带来帮助.)
#include
#include
using namespace std;
static int min = 0, max = 0;//全局变量
//前视声明:
void order(int * num, int n);
void addMin(int * num, int i);
void addMax(int * num, int i, int n);
int main()
{
ifstream fin;
ofstream fout;
fin.open("input.txt");
fout.open("output.txt");
int n;
fin >> n;
int * num = new int[n];
for(int i = 0;i < n;i++)
fin >> num[i];
order(num, n);
for(i = 1;i < n;i++)//注意必须从第二个数开始遍历!
addMin(num, i);
for(i = n-2;i >= 0;i--)//注意必须从倒数第二个数开始遍历!
addMax(num, i, n);
fout
看了我有一个石子合并问题但是只能做...的网友还看了以下:

做个唐朝少年郎阅读问题做个唐朝少年郎你愿意生活在哪个时代?有一天,突然有人这么问我.唐朝,当然是唐朝  2020-03-30 …

四面体是三棱锥,在四面体中可以作为棱锥底面的三角形有多小个?  2020-05-21 …

关于宇宙假如我们住在地球上,一个房子在一块土地上,土地有在一个国家上,国家有在这个地球上,地球有在  2020-06-05 …

有关空间站的问题?谁能回答我太空中一共有多小个空间站?他们是怎么建造的,是在地球上建造再送上太空吗  2020-06-11 …

数字盲打的指法是什么样的?就是食指按哪个数字,中指那哪几个数字,还有在小键盘上的东西都应该用哪个手  2020-06-30 …

有A、B、C三人被诬陷入狱,囚禁在一座塔楼上.塔楼上除了有一个窗口可以用于逃离外,再无其他出路.现  2020-07-02 …

英语翻译阅读,人们能更好的学会感恩,有责任心和与人合作,而教育的目的正是要培养这些基本素质,阅读对  2020-07-21 …

P和F在五线谱里是什么意思,还有在几个音符下面的大于符号和小于符号什么意思哪些是强哪些是弱,哪些快  2020-08-01 …

请帮做个小学数学题!小朋友分苹果,如果每人分4个就多9个,如果每人分5个就少6个,问有多小个小朋友?  2020-11-25 …

英语翻译急~1.你正在找什么?我在找一些关于科学方面的书2.我的自行车失踪了,你有没有在哪个地方看见  2021-01-01 …