(贪心)活动选择

问题描述
有一个需要使用每个资源的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

输出
4

贪心算法的主要思想就是对问题求解时,总是做出在当前看来是最好的选择,产生一个局部最优解。

  在活动选择问题中,每次的贪心解就是选择Sij结束时间最早的活动,这样就给后面的活动留下了目前看来最多的时间。假设活动已经按照结束时间递增的顺序进行排序,那么我们只需要遍历一次所有活动就可以得到最大兼容活动子集了。

#include<iostream>
#include<algorithm>
using namespace std;struct s{int begin;int end;
};
int sql(s &a, s &b){return a.end<b.end;
}int main(){int n;cin>>n;s a[1001];for(int i=1;i<=n;++i){cin>>a[i].begin>>a[i].end;}int num=0,begin=0,sum=0;sort(a+1,a+n+1,sql);for(int i=1;i<=n;++i){if(a[i].begin>=begin){num++;//sum+=a[i].end-a[i].begin+1;begin=a[i].end;}} cout<<num<<endl;//cout<<sum<<endl;return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue如何配置服务器端跨域_vue项目里如何配置本地代理实现跨域请求

1、在如图项目配置的index.js文件夹下添加以下一段话微信图片_20180912182204.pngproxyTable: {/rest: {target: http://192.168.20.223:8080, pathRewrite: {"^/rest": /rest },// secure: false, changeOrigin: true }},代码中的rest只是在请求接口时本人自定义的一…

cp命令显示进度条_干货|| Linux常用命令大全

Linux常用命令目录操作命令ls命令名称&#xff1a;ls命令英文原意&#xff1a;list命令所在路径&#xff1a;/bin/ls执行权限&#xff1a;所有用户功能描述&#xff1a;显示目录文件ls (显示当前目录下文件)ls 目录名 (显示指定目录下文件)ls -l (长格式显示目录文件)ls -l 文件…

(贪心)整数区间

题目 找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合&#xff0c;输出该集合的元素个数。 输入 首行包括区间的数目n,1≤n≤10000,接下来的n行,每行包括两个整数a,b,被一空格隔开,0≤a≤b≤10000,它们是某一个区间的开始值和结束值。 输出 …

二进制法生成1-n的子集

先上代码&#xff1a; #include<iostream> using namespace std;void print_subset(int n, int s){for(int i0;i<n;i)if(s&(1<<i)){printf("%d",i);} printf("\n");} int main(){int n;cin>>n; for(int i0;i<(1<<n);i)…

centos 等保三级_等保测评三级整改-身份鉴别

a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b;在linux&#xff0c;设置密码复杂度的方法有几个1. 一个是在/etc/login.defs文件&#xff0c;里面几个选项PASS_MAX_DAYS 90 #密码最长过期天数…

k3 审核流程图_K3操作流程图

目录一、流程图符号说明&#xff1a; ______________________________________________ 3二、K/3系统基础操作流程图&#xff1a; ___________________________________ 4A、“中间层—账套管理”_________________________________________________ 4 B&#xff1a;系统基础资…

c#中connect函数_Flink算子使用方法及实例演示:union和connect

Flink的Transformation转换主要包括四种&#xff1a;单数据流基本转换、基于Key的分组转换、多数据流转换和数据重分布转换。读者可以使用Flink Scala Shell或者Intellij Idea来进行练习&#xff1a;Flink Scala Shell&#xff1a;使用交互式编程环境学习和调试FlinkFlink 01 |…

(分治)取余运算

题目描述 输入b&#xff0c;p&#xff0c;k的值&#xff0c;求b^p mod k的值。其中b&#xff0c;p&#xff0c;k*k为长整型数。 输入 输入b&#xff0c;p&#xff0c;k的值。 输出 求b^p mod k的值。 样例输入 2 10 9 样例输出 2^10 mod 97 余数公式&#xff1a; a*…

java移动端接口测试_借助Charles来测试移动端-下篇

本篇是借助Charles来测试移动端的下半篇。(上篇任意门点我)上次说到可以借助Charles来抓移动端的网络请求&#xff0c;接下来&#xff0c;我们来看一下怎么通过Charles来模拟返回&#xff0c;还是以网页版豆瓣为例。先找到网页版豆瓣的请求通过上面这句话&#xff0c;我们知道&…

仓库货位卡标识牌_【干货】仓库布局,你想学啊,我教你啊!

下面两张仓库布局图&#xff0c;哪一个更加好&#xff1f;那再来看下这两张对比图&#xff0c;哪个布局更加好&#xff1f;为什么要关注仓库布局&#xff1f;在仓库操作中&#xff0c;什么操作最耗时&#xff1f;有一个大概的统计&#xff0c;假如说总工作量是100%的话&#xf…

(回溯Uva524)素数环

题目 输入正整数&#xff0c;把整数1&#xff0c;2&#xff0c;3&#xff0c;&#xff0c;n组成一个环&#xff0c;使得相邻两个整数之和均为素数。输出时从整数1开始逆时针排列。同一个环应恰好输出一次。n<16 样例输入 6 样例输出 1 4 3 2 5 6 1 6 5 2 3 4 分析与解…

openglshader实现虚拟场景_虚拟演播室设计原则

所谓虚拟演播室&#xff0c;就是利用计算机产生出虚拟的三维背景和道具&#xff0c;然后通过视频合成系统将演员与其进行合成&#xff0c;生成全三维、真人与虚拟布景和道具融合的效果。虚拟演播室系统只需要在一个蓝色背景下进行演播&#xff0c;不需要真正去搭建演播室布景&a…

(回溯 UVa129)困难的串

题目:分析与解答&#xff1a; 题目: 如果一个字符串包含两个相邻的重复子串&#xff0c;则称它是“容易的串”&#xff0c;其他串成为“困难的串”。例如:BB,ABCDACABCAB,ABCDABCD都是容易的&#xff0c;而D、DC、ABDAB、CBABCBA 都是困难的。 输入正整数n和L&#xff0c;…

功率谱 幅值谱_语音合成中的Mel谱和MFCC谱无区别

语音合成目前比较流行的方案是Tacotron(2) WaveNet(WaveRNN, LPCNet)等神经网络声码器。这些方案的流程大致相同&#xff0c;先由文本生成特征谱&#xff0c;再将特征谱重建为音频。在选择特征谱的时候&#xff0c;有的使用了Mel谱&#xff0c;有的使用了倒谱。本文通过梳理计…

DFS实现floodfill算法

题目&#xff1a;分析与解答 题目&#xff1a; 多组案例&#xff0c;每组案例输入一个m行n列的字符矩阵&#xff0c;统计字符‘’组成多少个连通块。如果两个字符‘’所在的格子相邻&#xff08;横、竖或对角线&#xff09;&#xff0c;则说明它们属于同一连通块。 Sample …

c++builder tadoquery存储过程_Electron桌面应用程序从创建项目、启动项目到打包程序的详细过程...

开发环境本文使用环境node12.14.1electron10.1.5electron-builder22.9.1electron-updater4.3.5&#xff1b;操作过程一、新建和启动项目1. 直接使用官网示例&#xff0c;先克隆示例项目的仓库&#xff0c;然后进入该仓库&#xff1b;# 克隆示例项目的仓库$ git clone https://g…

(BFS+hash去重)八数码问题

题目&#xff1a; 编号为1~8的8个正方形滑块被摆成3行3列&#xff08;有一个格子空留&#xff09;。每次可以把与空格相邻的滑块&#xff08;有公共边才算相邻&#xff09;移到空格中&#xff0c;而它原来的位置就称为了新的空格。给定初始局面和目标局面&#xff08;用0表示空…

变速后没有声音_问答 | 现代朗动at,启动后怠速不稳,热车后正常,是什么问题?...

今日老陈问答Q陈工你好&#xff1a;1.手动家车&#xff0c;停车怠速&#xff0c;有挡或空挡行驶都有异响&#xff0c;踩离合异响消失&#xff0c;抬离合异响恢复&#xff0c;换分离轴承未解决&#xff0c;压板轻磨损没更换&#xff0c;舱室粉末没清理 2.手动挡加自动变速箱油行…

怎么加载文件_Java虚拟机从入门到入土之JVM的类加载机制

作者&#xff1a;六脉神剑转载于&#xff1a;https://juejin.im/post/5e1aaf626fb9a0301d11ac8eJVM总体概述JVM总体上是由类装载子系统(ClassLoader)运行时数据区执行引擎内存回收类文件结构以上5个部分组成&#xff0c;每一个都是非常重要的&#xff0c;如果你要了解JVM&#…

的向上取整函数_计算机二级Excel常用函数解析

决定为大家推点干货让大家学习一下Excel的函数应用ABS绝对值 从最简单的开始第一个是ABS函数简而言之就是取绝对值作用就是MAX&MIN函数 这两个函数是好哥们也比较简单的就是从一堆数字中选出最大值和最小值如图C6格所示ROUND函数 四舍五入函数可不是回合ROUND 1算是比较…