算法设计与分析 —— 贪心
Konjac.k
这个作者很懒,什么都没留下…
展开
-
最优服务次序问题(贪心)
题目:(1)问题描述: 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti,1(2)编程任务: 对于给定的n个顾客需要的服务时间,编程计算最优服务次序。(3)数据输入: 第一行是正整数n,表示有n 个顾客。接下来的1行中,有n个正整数,表示n个顾客需要的服务时间。(4)结果输出: 计算出的最小平均等待时间。(5)输入示例10 56原创 2017-10-20 16:18:33 · 2471 阅读 · 0 评论 -
区间相交问题(贪心)
题目:(1)问题描述: 给定x 轴上n 个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。(2)编程任务: 给定n 个闭区间,编程计算去掉的最少闭区间数。(3)数据输入: 第一行是正整数n,表示闭区间数。接下来的n行中,每行有2 个整数,分别表示闭区间的2个端点。(4)结果输出:计算出的去掉的最少闭区间数。(5)输入示例310 201原创 2017-10-20 16:33:23 · 3198 阅读 · 2 评论 -
汽车加油问题(贪心)
题目:问题描述:一辆汽车加满油后可行驶nkm。旅途中有若干加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。算法设计:对于给定的n和k个加油站位置,计算最少加油次数。数据输入:n:表示汽车加满油后可行驶nkm k:旅途中有k个加油站 k+1个整数:表示第k个加油站与第k-1个加油站之间的距离。第0个加油站表示出发地,原创 2017-10-20 16:43:40 · 2125 阅读 · 0 评论 -
单源最短路(dijkstra)
题目: 给定n个点,m条边,以及每条边的信息,求从源点1到终点n的最短距离。思路:每次找一个顶点(集合外)加入S集合(已经求出当前最短路的集合),可加入条件为 dist[u]+cost代码:#include using namespace std;/* * 使用优先队列优化Dijkstra算法 * 复杂度O(ElogE) * 注意对vectorE[MAXN]进行初始化后加边原创 2017-10-12 20:23:26 · 848 阅读 · 0 评论 -
最小生成树(prime)
题目:给一个无向图,给定每条边信息,求该图的最小生成树。思路:prime算法就是一个贪心的思想,先找定一个点,然后每次加入一条最短的边,直到所有点被用,此时的和就是最小生成树的权值。邻接矩阵存边信息的prime时间复杂度为O(n^2)代码:#includeusing namespace std;const int maxn=105,inf=1<<30;int Map[maxn]原创 2017-10-12 22:00:18 · 678 阅读 · 0 评论