关键词:
贪心5--活动选择
一、心得
二、题目和分析
问题描述:
有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用。每个活动a都有一个开始时间和结束时间,且 0<= s < f < 。一旦被选择后,活动a就占据半开时间区间[s,f]。如果[s,f]和[s,f]互不重叠,则称两个活动是兼容的。该问题就是要找出一个由互相兼容的活动组成的最大子集。
三、代码和结果
输入
11
3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 struct act{ 5 int begin; 6 int end; 7 }; 8 9 int mycmp(const act &a,const act &b){ 10 return a.end<b.end; 11 } 12 13 //贪心,选最快结束就好 14 int main(){ 15 freopen("in.txt","r",stdin); 16 int n; 17 cin>>n; 18 act a[1005]; 19 for(int i=1;i<=n;i++){ 20 cin>>a[i].begin>>a[i].end; 21 } 22 sort(a+1,a+n+1,mycmp); 23 cout<<"排序后的序列"<<endl; 24 for(int i=1;i<=n;i++){ 25 cout<<a[i].begin<<" "<<a[i].end<<endl; 26 } 27 int total=0; 28 int begin=0; 29 for(int i=1;i<=n;i++){ 30 if(a[i].begin>=begin){ 31 total++; 32 begin=a[i].end; 33 } 34 35 } 36 cout<<"ans:"<<total<<endl; 37 38 return 0; 39 }
活动选择-贪心(代码片段)
Description 学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。 现在给出n个... 查看详情
c++算法主题系列之贪心算法的贪心之术(代码片段)
1.前言贪心算法是一种常见算法。是以人性之念的算法,面对众多选择时,总是趋利而行。因贪心算法以眼前利益为先,故总能保证当前的选择是最好的,但无法时时保证最终的选择是最好的。当然,在局部利益最大化的同时,... 查看详情
活动选择的贪心算法与动态规划(未完成)
//greedy_algorithm.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include<iostream>#include<queue>usingnamespacestd;#defineNofActivity11intc[NofActivity+1][NofActivity+1];intreme[NofActivity+1][No 查看详情
活动安排问题-贪心算法
贪心算法:贪心算法总是做出在当前看来最好的选择,也就是贪心算法不从整体最优化的角度考虑。它所做出的选择只是在某种意义上的局部最优选择性质:最优子结构性质当一个问题的最优解包含其子问题的最优解... 查看详情
算法导论笔记——第十六章贪心算法
...早的活动,则am在Sk的某个最大兼容活动子集中。 16.2贪心算法原理设计贪心算法步骤:1》将最优化问题转化为这样的形式:对其做出一次选择 查看详情
贪心算法-活动安排问题(代码片段)
...间的活动,为未安排活动留下尽可能多的时间。该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。(贪心算法是指在对问题求解时,不从整体最优上加以考虑,总是做出某种意义上的局部... 查看详情
《算法导论》读书笔记
前言:贪心算法也是用来解决最优化问题,将一个问题分成子问题,在现在子问题最优解的时,选择当前看起来是最优的解,期望通过所做的局部最优选择来产生一个全局最优解。书中先从活动选择问题来引入贪心算法,分... 查看详情
贪心入门——活动安排问题
贪心入门的几个例题来自51nod问题描述 有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动?输入第1行:1个数N,线段的数量(2<=N<=10000)第2-N+1行:每行2个数,线... 查看详情
数据结构与算法笔记(十七)——贪心算法及经典案例(找零问题背包问题拼接最大数字问题活动选择问题)(代码片段)
一、贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法并不保证会得到最优... 查看详情
数据结构与算法笔记(十七)——贪心算法及经典案例(找零问题背包问题拼接最大数字问题活动选择问题)(代码片段)
一、贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法并不保证会得到最优... 查看详情
nyoj14贪心解题报告
会场安排问题时间限制:3000 ms | 内存限制:65535 KB难度:4 描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂... 查看详情
[nyoj]会场安排问题-贪心
会场安排问题时间限制:3000 ms | 内存限制:65535 KB难度:4 描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活... 查看详情
(转)贪心算法之精辟
问题一、活动安排问题问题表述:设有n个活动的集合E = {1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活i都有一个要求使用该资源的起始时间si和一个... 查看详情
hdu2037今年暑假不ac(贪心)
HDU2037今年暑假不AC(贪心)题目:http://acm.hdu.edu.cn/showproblem.php?pid=2037很经典的活动安排问题变形,与算法教材的活动安排一样,依据结束时间进行排序,然后相容的累加就可以。//经典贪心问题活动时间安排的简单变形//按活动... 查看详情
nyoj14-会场安排问题(贪心)(代码片段)
14-会场安排问题内存限制:64MB时间限制:3000msSpecialJudge:Noaccepted:9submit:15题目描述:学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动... 查看详情
五大常用算法之三贪心算法
贪心算法贪心算法简介: 贪心算法是指:在每一步求解的步骤中,它要求“贪婪”的选择最佳操作,并希望通过一系列的最优选择,能够产生一个问题的(全局的)最优解。 贪心算法每一步必须满足一下条件: 1、... 查看详情
算法与程序设计:贪心算法
目录一、概念1.1贪心算法的基本要素1.1.1贪心选择性质1.1.2最优子结构性质1.2贪心算法与动态规划算法的差异二、举例2.1活动安排问题2.2最优装载问题2.3哈夫曼编码一、概念1.1贪心算法的基本要素贪心选择性质最优子结构性质1.1.1... 查看详情
贪心算法——java实现(代码片段)
概念:贪心的意思在于在作出选择时,每次都要选择对自身最为有利的结果,保证自身利益的最大化。题目:小明手中有1,5,10,50,100五种面额的纸币,每种纸币对应张数分别为5,2,2,3,5张。若小明需要支付456元,则需要... 查看详情