贪心方法

1.背包问题

按效益值/重量 进行排序输入

2.带限期的作用排序

按效益值进行排序输入

3 最小生成树:

贪心方法:每次计入成本最小的边

原树T, 欲构造的最小生成树T‘

Prim: 从T中选与T‘中结点相连的成本最小的边。 且:边之前不在T‘中。加入Tp后不会构成环

Kruskal: 从T中成本最小的边。      且:边之前不在T‘中。加入Tp后不会构成环

从中可以看出:Prim在构造过程中,T‘始终是一棵树。

Kruaskal在构造过程,T‘可能是一个森林,结果时是一棵树。

4 单源点最短路径

Dijskstra:

Dist(w)= min {  Dist(w), Dist(u)+cost(u,w) }

按prim法选择一个结点u,加入集合S;

对每一个u所连接的结点w,更新源点到w的最短距离:若 源点到u的最短距离+u到w成本 <源点到w最短距离,则更新。

时间: 2024-08-29 11:04:25

贪心方法的相关文章

uva 11134 - Fabled Rooks(主要在贪心方法及其实现)

#用到了贪心方法. #这个贪心刚开始想错了方法,后来想到了新的方法,AC 刚开始错在了按左端点升序排序并从左往右取最左端能取的格子,这个方法显然不能符合要求 比如下面这组数据: 2 1 1 3 3 1 1 3 3 2 2 2 2 错误代码: #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struct note {

POJ1862 Stripies 【贪心】

Stripies Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12522   Accepted: 5929 Description Our chemical biologists have invented a new very useful form of life called stripies (in fact, they were first called in Russian - polosatiki, bu

算法导论——lec 13 贪心算法与图上算法

之前我们介绍了用动态规划的方法来解决一些最优化的问题.但对于有些最优化问题来说,用动态规划就是"高射炮打蚊子",采用一些更加简单有效的方法就可以解决.贪心算法就是其中之一.贪心算法是使所做的选择看起来是当前最佳的,期望通过所做的局部最优选择来产生一个全局最优解. 一. 活动选择问题 [问题]对几个互相竞争的活动进行调度:活动集合S = {a1, a2, ..., an},它们都要求以独占的方式使用某一公共资源(如教室),每个活动ai有一个开始时间si和结束时间fi ,且0 ≤ si &

C语言贪心(2)___田忌赛马(Hdu 1052)

Problem Description Here is a famous story in Chinese history. "That was about 2300 years ago. General Tian Ji was a high official in the country Qi. He likes to play horse racing with the king and others." "Both of Tian and the king have t

uoj #31. 【UR #2】猪猪侠再战括号序列 贪心

#31. [UR #2]猪猪侠再战括号序列 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/31 Description 大家好我是来自百度贴吧的_叫我猪猪侠,英文名叫_CallMeGGBond. 我不曾上过大学,但这不影响我对离散数学.复杂性分析等领域的兴趣:尤其是括号序列理论,一度令我沉浸其中,无法自拔.至于OI算法竞赛,我年轻时确有参加,虽仅获一枚铜牌,但我素性淡泊,毫不在意,毕竟那所谓FFT.仙人掌之类

HDU1009_FatMouse&amp;#39; Trade【贪心】【水题】

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 44470    Accepted Submission(s): 14872 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats g

(水)POJ-3262 贪心,背包,比率问题

题目大意: 有n个牛在FJ的花园乱吃. 所以FJ要赶他们回牛棚. 每个牛在被赶走之前每秒吃Di个花朵.赶它回去FJ要花的时间是Ti,走回来再赶其他牛也需要Ti的时间.在被赶走的过程中牛就不能乱吃了 题目链接:点击打开链接 分析:这个题与贪心中的背包问题很像,都涉及到比率问题,按照比率来排序.背包问题中以 价值/质量 来从大到小排序,而这里我们以 D/T 来从大到小排序,以此顺序来赶牛就行了. 下面给出证明: 设di,ti,Ti分别代表编号为i(以 di / ti 从大到小依次编号)的牛每秒吃di

POJ3262 Protecting the Flowers 【贪心】

Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4418   Accepted: 1785 Description Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. When he returned, he found to his ho

hdu 1050 Moving Tables(迷之贪心...)

题意:有400间房间按题目中图片所给的方式排列,然后给出要移动的n张桌子所要移动的范围,每张桌子要移动的范围不能出现重叠的区域:问最少要多少次才能移动完所有的桌子. 题解思路:把题目转换下,就是有n个区间,每次可以去除掉k个没有重叠部分的区间,最少要多少次能去掉所有区间.妥妥的,,贪心.可能会有人联想到经典的"区间调度问题".但很遗憾,在这里行不通:区间调度问题是按区间右端排序后尽可能选取结束时间早的,但这种贪心只是一次性选取尽可能多的区间,而本题是要求选取完所有区间所要花费次数最少.