C++贪心算法1
什么是贪心算法?
贪心算法,是解决最值问题时的常用方法
是通过假设,枚举
以小部分的最优解合成整体的最优解
但有时候,贪心会有反例
这个时候用贪心做,便不能拿全部的分数
而贪心算法,极大多数都是用到排序的
那先看一道例题
例题:洛谷 P1223.排队接水
题目描述:
有 n n n 个人在一个水龙头前排队接水,假如每个人接水的时间为 T i Ti Ti ,请编程找出这 n n n 个人排队的一种顺序,使得 n n n 个人的平均等待时间最小。
输入格式:
第一行为一个整数 n n n。
第二行 n n n 个整数,第 i i i 个整数 T i Ti Ti 表示第 i i i 个人的等待时间 T i Ti Ti
输出格式:
输出文件有两行,第一行为一种平均时间最短的排队顺序;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。
数据范围:
n < = 1000 , T i < = 1 0 6 n<=1000,Ti<=10^6 n<=1000,Ti<=106 ,不保证 T i Ti Ti 不重复
当 T i Ti Ti 重复时,按照输入顺序即可( s o r t sort