7-1 活动选择问题 (25 分)(思路+详解+扩展)宝 今天你AC了吗!!!

一:题目

假定一个有n个活动(activity)的集合S={a
1

,a
2

,…,a
n

},这些活动使用同一个资源(例如同一个阶梯教室),而这个资源在某个时刻只能供一个活动使用。每个活动a
i

都有一个开始时间s
i

和一个结束时间f
i

,其中0<=s
i

<f
i

<=32767。如果被选中,任务a
i

发生在半开时间区间[s
i

,f
i

)期间。如果两个活动a
i

和a
j

满足[s
i

,f
i

)和[s
j

,f
j

)不重叠,则称它们是兼容的。也就说,若s
i

=f
j

或s
j

=f
i

,则a
i

和a
j

是兼容的。在活动选择问题中,我们希望选出一个最大兼容活动集。

输入格式:
第一行一个整数n(n≤1000);

接下来的n行,每行两个整数,第一个s
i

,第二个是f
i

(0<=s
i

<f
i

<=32767)。

输出格式:
输出最多能安排的活动个数。

输入样例:
11

3 5
1 4
12 14
8 12
0 6
8 11
6 10
5 7
3 8
5 9
2 13

结尾无空行
输出样例:

4

样例解释:
安排的4个活动为1 4, 5 7, 8 11和12 14。

二:分析题意+思路

1:分析

这个题就是让我们求解无重叠区间的个数,是道经典的贪心算法题

2:思路

:1.这个题类似无重叠区间 就是最后求出的区间为互不重合的区间(不包括边界)
2.那么我们在处理数据的时候是将 每两个数存在一起,再用一个大的容器将其存起来
3.处理数据 我们按每组数据的结束时间 升序处理,
4.紧接着求出第一个区间右边界,跟下一组的左边界进行比较,如果小于等于其左边界
那么说明区间不覆盖了,我们就需要更新右边界 我们统计其个数

三:处理数据

宝这道题在处理 数据的时候 你可以采用 结构题体数组来储存数据,目的是可以重写sort方法,让每组数据的到达时间可以升序排序;但贴心杰用的vector的嵌套使用,因为我钟爱 vector呀!讲重点:我们处理数据的时候一定要想好你写码中会用到啥,比如这个题中需要将让每组数据的到达时间可以升序排序,所以我们采用结构体数组或者是 vector嵌套使用!!!

四:上码

/**思路:1.这个题类似无重叠区间  就是最后求出的区间为互不重合的区间(不包括边界)2.那么我们在处理数据的时候是将 每两个数存在一起,再用一个大的容器将其存起来3.处理数据 我们按每组数据的结束时间 升序处理,4.紧接着求出第一个区间右边界,跟下一组的左边界进行比较,如果小于等于其左边界那么说明区间不覆盖了,我们就需要更新右边界 我们统计其个数*/#include<bits/stdc++.h>
using namespace std;//处理每组的数据让其第二个值大于前一个值 
static bool cmp(const  vector<int>& a, const vector<int>& b){return a[1] < b[1];
} int main(){int N;int count = 1;//表示取出的第一个区间第一组数据 vector<vector<int> >v;//注意这里的空格 一定要有  这是大容器存每组的数据 vector<int>v1;//存一组数据 cin >> N;for(int i = 0; i < N; i++){for(int j = 0; j < 2; j++){int temp;cin >> temp;v1.push_back(temp);}		v.push_back(v1);v1.clear();//清空一次v1容器 为了存下一组数据 		} //验证输出的数据 
//	for(int i = 0; i < N; i++){
//		
//		for(int j = 0; j < 2; j++){
//			cout << v[i][j]  << " "; 
//		}			
//		cout << endl;
//	} sort(v.begin(),v.end(),cmp); int num = v[0][1];//第一组数据的右边界for(int i = 1; i < N; i++){if(num <= v[i][0]){//如果后一个数的左边界 大于等于其右边界的话 num = v[i][1];//这时候就可以更新右边界了,因为 已经确立了一组不相交的区间了count++; }} cout << count;
} 

在这里插入图片描述

五:扩展延申

做完这道题其实和leedcode有道题类似 可以给赶紧拿来练练手

leedcode:直接搜题号 435

435的题解

六:知识速递(如果对vector的嵌套不熟悉的宝宝 可以学习下方的模板)

自己拿码运行运行 在理解敲几遍 ,这个知识就是你的了宝

#include<bits/stdc++.h>
using namespace std;//处理每组的数据让其第二个值大于前一个值 
static bool cmp(const  vector<int>& a, const vector<int>& b){return a[1] < b[1];
} 
int main(){vector<vector<int> >v; //得留出空格 vector<int>v1; //添加的时候需要一个 vector<int>v1; 来表示第一行的数据 for(int i = 0; i < 3; i++){for(int j = 0; j < 2;j++){v1.push_back(j);}v.push_back(v1);v1.clear(); }//访问嵌套vector	for(int i = 0; i < 3; i++){for(int j = 0; j < 2;j++){	cout << v[i][j] << ' ';	}cout << endl;}} 

最后还得再唠叨一句 记得加油 宝宝!!!!!!!!!!!!

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

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

相关文章

初识ABP vNext(5):ABP扩展实体

点击上方蓝字"小黑在哪里"关注我吧扩展实体路由整理前言上一篇实现了前端vue部分的用户登录和菜单权限控制&#xff0c;但是有一些问题需要解决&#xff0c;比如用户头像、用户介绍字段目前还没有&#xff0c;下面就来完善一下。开始因为用户实体是ABP模板自动生成的…

计算机管理-磁盘管理中进行扩展卷操作,管理磁盘diskpart命令

很多时候&#xff0c;我们需要对磁盘进行诸如创建分区、转换分区表格式、格式化、扩展卷等操作&#xff0c;尤其你在一台安装了全新的硬盘的电脑上安装windows的时候&#xff0c;磁盘管理操作显得更加必要。通常&#xff0c;人们会使用第三方Windows PE启动盘当中附带的可视化磁…

7-8 最优服务次序问题 (10 分)

一 &#xff1a;题目 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为 t i ​ (1<i<n) 。应如何安排n个顾客的服务次序才能使平均等待时间达到最小&#xff1f;平均等待时间是n 个顾客等待服务时间的总和除以n。 输入格式: 第一行是正整数n(1<n<1000)&…

.NET Core + K8S + Apollo 玩转配置中心

1.引言Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且具备规范的权限、流程治理等特性&#xff0c;适用于微服务配置管理场景。…

计算机格式化后数据恢复的基础,电脑硬盘格式化后还能恢复吗

电脑硬盘是电脑运行的基础固件&#xff0c;我们使用电脑需要依赖它储存文件、运行软件等。那么在使用电脑的过程中你有没有遇到这样的问题&#xff1a;当打开一个电脑磁盘分区时&#xff0c;该分区无法使用并提示格式化&#xff0c;这时候一般的小伙伴是不是都手欠格式化硬盘了…

并查集的相关知识详解 Come baby!!!

一&#xff1a;并查集的相关知识 这道题用到了并查集&#xff0c;所以我就学了一下并查集&#xff0c;所以把自己的见解也分享给大家&#xff08;建议 先看视频 再浏览 博客 再自己敲一遍 学习效率高而已&#xff0c;我总是乱着来 以为看几篇博客就会了&#xff0c;其实最后还…

路线错误的教训对如今的模范企业也有借鉴意义

此前&#xff0c;倪光南院士对L公司如今的困境做了深刻的剖析&#xff0c;那就是“路线不对”、“知识产权0股份”。“路线不对”指的是L公司放弃了技术路线&#xff0c;选择了“造不如买”&#xff0c;玩组装和贸易。几十年如一日依附于Wintel体系&#xff0c;“跟在洋人身后吃…

7-3 最小生成树-kruskal (10 分)(思路+详解+并查集详解+段错误超时解决)宝 Come

一&#xff1a;前言 本题需要用到并查集的知识&#xff0c;建议先学完并查集后再看看本题 二&#xff1a;题目 题目给出一个无向连通图&#xff0c;要求求出其最小生成树的权值。 温馨提示&#xff1a;本题请使用kruskal最小生成树算法。 输入格式: 第一行包含两个整数 N(1&…

计算机等级delphi取消,计算机二级DELPHI控件:DELPHI过滤记录的实现方法

所谓过滤就是从表中选取满足特定条件的部分记录。过滤记录首先要通过Filter。属性设置过滤条件&#xff0c;然后将Filtered属性设置为True&#xff0c;即可从数据集组件连接的表中过滤出满足条件的记录。1&#xff0e;Filter属性Filter属性用于设置过滤条件&#xff0c;它是一个…

Azure认知服务之使用墨迹识别功能识别手写汉字

前面我们使用Azure Face实现了人脸识别、使用Azure表格识别器提取了表格里的数据。这次我们试试使用Azure墨迹识别API来对笔迹进行识别。墨迹识别墨迹识别器认知服务提供基于云的 REST API 用于分析和识别数字墨迹内容。与使用光学字符识别 (OCR) 的服务不同&#xff0c;该 API…

7-9 删数问题 (10 分)(思路加详解)

一&#xff1a;题目 有一个长度为n&#xff08;n < 240&#xff09;的正整数&#xff0c;从中取出k&#xff08;k < n&#xff09;个数&#xff0c;使剩余的数保持原来的次序不变&#xff0c;求这个正整数经过删数之后最小是多少。 输入格式: n和k 输出格式: 一个数字…

如何做一个懂产品的程序员?

这篇是之前发过的《懂程序员的产品经理是什么样子&#xff1f;》的镜像篇&#xff0c;这次是程序员视角。两个相爱相杀的岗位&#xff0c;想要更好的达成共识、更好的合作&#xff0c;自然不仅仅是一方的事情。这次Z哥先会带你看看产品经理眼中的程序员是什么样子。然后给出一些…

2019吉首大学计算机调剂,吉首大学2019年硕士研究生调剂考生复试情况分学院公示...

002商学院2019年第二批拟录取硕士研究生情况汇总表 (调剂考生公示版).pdf.pdf 72.8 KB 2019-04-26 15:18 -a--003法管学院2019年硕士研究生拟录取情况汇总表(调剂考生递补公示版).pdf.pdf 69.0 KB 2019-04-26 15:18 -a--003法管学院2019年硕士研究生拟录取情…

2021-10-28

想敲代码 想敲代码

突破冯诺依曼原理的计算机,冯诺依曼计算机的基本原理

冯诺伊曼结构(英语&#xff1a;Von Neumann architecture)&#xff0c;也称冯诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture)&#xff0c;是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。本词描述的是一种实现通用图灵机的计算设备&…

【LeetCode】1. 盛最多水的容器:C#三种解法

题目&#xff1a;https://leetcode-cn.com/problems/container-with-most-water/盛最多水的容器难度:中等给你 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个…

7-1 银行家算法--安全性检查 (20 分)(思路+详解+知识分析)宝 你今天 AC了吗

一&#xff1a;前言 停更一周了&#xff0c;在这一周里&#xff0c;我每时每刻都在 想这我这 29个粉丝&#xff0c;庆幸教师资格证终于结束了&#xff0c;贴心杰又可以天天更新博客了 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈&#xff0c;I am come back; 二&#xff1a;题目&a…

平均成绩计算机控件,计算机技术基础(第十二章 文件 )

功能&#xff1a;包括文件的创建(打开)、复制、移动、删除及获取与文件有关的信息。可以使用FileSystemObject对象和File对象完成文件管理工作。管理文件的部分属性和方法&#xff1a;P229-230表12-5&#xff1b;表12-61&#xff0e;文件的创建与打开FSO对象模型提供了三种创建…

.Net Core中的诊断日志DiagnosticSource讲解

前言近期由于需要进行分布式链路跟踪系统的技术选型&#xff0c;所以一直在研究链路跟踪相关的框架。作为能在.Net Core中使用的APM&#xff0c;SkyWalking自然成为了首选。SkyAPM-dotnet是SkyWalking在.Net Core端的探针实现&#xff0c;其主要的收集日志的手段就是基于Diagno…

7-2 银行家算法--申请资源 (30 分)

7-2 银行家算法–申请资源 (30 分)&#xff08;思路详解&#xff09;Come 乖宝宝们 一&#xff1a;前言 这道题需要用到前面的一道题 安全性检查 算法知识&#xff0c;所以强烈建议先看前面那道题 7-1 银行家算法–安全性检查 (20 分) 二&#xff1a;题目 输入N个进程(N<…