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模板自动生成的…

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;这时候一般的小伙伴是不是都手欠格式化硬盘了…

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

此前&#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 输出格式: 一个数字…

【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…

.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<…

年薪100万和10万程序员的差距

点击蓝字关注&#xff0c;回复“职场进阶”获取职场进阶精品资料一份我们看武侠大片&#xff0c;经常有那种本来可以练就绝世武功的大虾。阴差阳错练的走火入魔。一开始还可以硬撑&#xff0c;还能打败一些虾兵蟹将。遇见真正的高手&#xff0c;这些大虾们立马就败下阵来。其实…

7-3 银行家算法--综合 (50 分)(思路+详解+分析输入)宝宝们 加油

一&#xff1a;前言 这道题涉及到 银行家算法的申请资源 算法 还有 安全性检查的耍算法 那么强烈建议 把前面的学完再看本题 7-1 银行家算法–安全性检查 (20 分) 7-2 银行家算法–申请资源 (30 分) 二&#xff1a;题目 输入N个进程(N<100)&#xff0c;以及M类资源&#…

如何在龙芯3B4000上部署基于.Net Core 开发的物联网平台IoTSharp

今天很开心的拿到了龙芯的测试服务器账号&#xff0c; 先上图show一下&#xff0c; 双核&#xff0c; 8G内存&#xff0c; 50G硬盘。架构 mips64el 登录后&#xff0c; 显示为 uos 及其网址信息:接下来&#xff0c; 二话不说&#xff0c; 我们开始下载龙芯版的.Net Core &#…

46. 全排列015(回溯法求解)

一:题目 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2&#xff1a;输入&#xff1a;nums [0,1] 输出&#xff1a;[[0,1],[1,0]] 示例 3&#xff1a;输入&#xff1a;nums [1] 输出&#xf…

git did not exit cleanly(解决办法)

一&#xff1a;问题描述 我们在push的时候&#xff0c;出现如下问题 这个图是我拿别人的&#xff08;因为我的问题解决后 没保存图&#xff09; 二:解决 1.新建一个仓库在gitee上: 2:将新建的仓库克隆到本地 3&#xff1a;将原来的文件剪切到javanew(新建的仓库) 4&#…

[Hei.Captcha] Asp.Net Core 跨平台验证码实现

&#xfeff;&#xfeff;写在前面说起来比较丢脸。我们有个手机的验证码发送逻辑需要使用验证码&#xff0c;这块本来项目里面就有验证码绘制逻辑&#xff0c;.Net Framework的&#xff0c;使用的包是System.Drawing,我把这验证码绘制逻辑复制到.Net Core的新项目引用对比包Sy…

77. 组合016(回溯法)

一:题目 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ] 示例 2&#xff1a;输入&#xff1a;n …