pascal中级教程第三章贪心法.docVIP

  • 15
  • 0
  • 约1.39万字
  • 约 18页
  • 2018-11-21 发布于河南
  • 举报
pascal中级教程第三章贪心法.doc

第三章 贪心法 3.1 排队接水 源程序名 water.???(pas, c, cpp) 可执行文件名 water.exe 输入文件名 water.in 输出文件名 water.out 【问题描述】 有n个人在一个水龙头前排队接水,假如每个人接水的时间为Ti,请编程找出这n个人排队的一种顺序,使得n个人的平均等待时间最小。 【输入】 输入文件共两行,第一行为n;第二行分别表示第1个人到第n个人每人的接水时间T1,T2,…,Tn,每个数据之间有1个空格。 【输出】 输出文件有两行,第一行为一种排队顺序,即1到n的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。 【样例】 water.in water.out 10 3 2 7 8 1 4 9 6 10 5 56 12 1 99 1000 234 33 55 99 812 291.90 【算法分析】 平均等待时间是每个人的等待时间之和再除以n,因为n是一个常数,所以等待时间之和最小,也就是平均等待时间最小。假设是按照1~n的自然顺序排列的,则这个问题就是求以下公式的最小值: 如果用穷举的方法求解,就需要我们产生n个人的所有不同排列,然后计算每种排列所需要等待的时间之和,

文档评论(0)

1亿VIP精品文档

相关文档