【贪心】会场安排问题

算法分析与设计-会场安排问题(贪心)(通俗易懂,附源码和图解,含贪心选择性质和最优子结构性质的证明)(c++) 4-1 会场安排问题 (一)题目 问题描述 假设在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点有着不同颜色的最小着色数,相当于要找的最少会场数。) 算法设计 对于给定的nnn个待安排活动,计算使用最少会场的时间。 数据输入 由文件input.txt提供输入数据。第1行中有一个整数nnn,表示有nnn个待安排的活动。接下来的nnn行中,每行有2个正整数,分别表示nnn个待 阅读详情

贪心算法总是做出当前看来是最好的选择(局部最优—>整体最优)

一.基本要素

1.贪心选择性质:局部最优—>整体最优

2.最优子结构性质:一个问题的最优解包含其子问题的最优解。

二.贪心算法和动态规划算法的差异

动态规划算法:每步所做出的选择往往依赖于相关子问题的解,因而只有在解出相关子问题后才能做出选择。

贪心算法:仅在当前状态下做出最好选择,即局部最优选择,再去解做出这个选择后产生的相应子问题。贪心算法所做的贪心选择可以依赖以往所做过的选择,但绝不依赖将来所做的选择,也不依赖子问题的解。

三.局限性

1.贪心算法不是对所有问题都能得到整体最优解

2.不能用来求最大最小解问题

四.例题-会场安排问题

1.问题描述

在这里插入图片描述

2.算法思路

1.将所有活动安排按照开始时间从小到大排序

2.安排第一个活动肯定需要一个会场,故初始cnt=1,记录结束时间

3.开一个数组hall[]记录所有会场最近活动的结束时间

4.遍历所有活动,如果当前活动的开始时间大于某个会场最近活动的结束时间,则该会场可举办该活动,更新该会场最近活动的结束时间;如果当前活动的开始时间小与所有会场最近活动的结束时间,则需新租一个会场

3.程序代码

#include<bits/stdc++.h>
using namespace std;
#define N 100100
struct act{
	int s;
	int e;
}a[N];
int k;
int hall[N];

bool com(act left,act right){
	return left.s<right.s;
}

int main(){
	scanf("%d",&k);
	for(int i=1;i<=k;i++){
		scanf("%d",&a[i].s);
		scanf("%d",&a[i].e);
	}
	sort(a+1,a+k,com);
	int cnt=1;
	hall[1]=a[1].e;
	for(int i=2;i<=k;i++){
		for(int j=1;j<=cnt+1;j++){
			//现有场馆不能用 
			if(j==cnt+1){
				cnt++;
				hall[cnt]=a[i].e; //新弄一个场馆
				break; 
			}
			//现有场馆可以用 
			if(a[i].s>hall[j]){
				hall[j]=a[i].e;
				break;
			}
		}
	}
	printf("%d",cnt);
	return 0;
} 

4.测试

在这里插入图片描述

贪心算法解会场安排问题 会场安排问题 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的k个待安排的活动,计算使用最少会场的时间表。 Input 输入数据的第一行有1 个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计。 阅读详情

相关推荐

OpenEuler22.03 LTS下Zabbix7.0监控系统的容器化部署避坑指南(含Docker-Compose完整配置)

本文详细介绍了在OpenEuler22.03 LTS操作系统上容器化部署Zabbix7.0监控系统的完整流程,包括Docker引擎配置、Docker-Compose编排、网络模式选择及性能调优等关键步骤。针对OpenEuler环境下的特殊问题提供了解决方案,帮助用户高效搭建稳定可靠的监控系统。

python9snake的博客 267

会场安排问题(PTA可过)

假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的 贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小 会场数。) 输入格式: 第一行有 1 个正整数k,表示有 k个待安排的活动。 接下来的 k行中,每行有 2个正整数,分别表示 k个待安排的活动开始时间和结束时间。时间 以 0 点开始的分钟计。 输出格式: 输出最少会场数。 输入样例: 5 1 23 12 28 25 3

Sophis_ticate的博客 4572

从平衡车到寻迹小车:IMU963RA九轴陀螺仪实战避坑与四元数融合指南

本文详细解析了IMU963RA九轴陀螺仪在机器人姿态控制中的应用,重点探讨了从六轴升级到九轴系统的技术路径及四元数融合算法。通过实战案例,揭示了如何利用地磁计补偿陀螺积分漂移,并提供硬件集成、传感器校准及算法实现的完整解决方案,有效将8小时漂移控制在2度以内。

weixin_27219587的博客 253

会场安排问题贪心算法

问题描述: 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。 问题解答: 、用贪心选择策略解会场安排问题。 贪心算法重要的两个性质:贪心选择性质和最优子结构性质。 1、 问题的贪心选择性质

jiyang_1的博客 2万+

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略

本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。

weixin_29008805的博客 447

逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数

本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。

weixin_27875131的博客 967

算法学习——贪心算法(会场安排问题)

问题描述: 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。 算法设计 对于K个待安排的活动,计算使用最少会场的时间表。 输入 5 1 23 12 28 25 35 27 80 36 50 输出 3 参考计算机算法设计与分析(第五版)王晓东 第四章贪心算法4.1活动安排问题,书中的题目有个...

luladuck的博客 4185

ubuntu18.04 升级Ubuntu 20.04

Ubuntu 18.04升级20.04指南:首先备份重要数据,更新当前系统并检查新版本可用性(sudo do-release-upgrade -c)。确认升级后执行sudo do-release-upgrade,按提示完成操作。升级过程需耐心等待,完成后重启系统。注意:升级前务必备份数据,确保系统为最新版本,以降低风险。升级后即可使用Ubuntu 20.04系统。

https://ophome.blog.youkuaiyun.com,在IT行业有多年的工作经验,尤其是在Python、Linux、负载均衡、Nginx和服务器运维等领域。 1058

计算机算法分析与设计(14)---贪心算法(会场安排问题和最优服务次序问题)

3. (1)先为最早开始的活动开辟一个会场,此时会场的最早结束时间为该活动的结束时间。如果没有,说明当前最早结束的会场能容纳当前的活动,更新会场的结束时间点,保证最早结束的会场最先开始下一个活动。可能有同学有疑惑:每个活动的开始时间和结束时间怎么是分开排序的?: 这道题不用关联,这个解法,只需要关心开始时间和结束时间,,只要集合里面的最大结束时间和当前的开始时间就可以。个活动,每个活动的开始和结束时间分别为 {1, 6},{4, 8},{9, 10},{7, 18}。个待安排的活动的开始时间和结束时间。

m0_62881487的博客 4976

1、深入解析OTA/gm - C滤波器架构与设计

本文深入探讨了OTA/gm-C滤波器的架构与设计方法,涵盖了从基本构建模块到高阶滤波器实现的多种技术。重点分析了双积分器环路结构(如Tow-Thomas和KHN滤波器)的工作原理、性能特点及OTA非理想特性对滤波器的影响,并介绍了降低寄生效应、提升动态范围的方法。文章还讨论了基于LC梯形仿真、多环反馈和电流模式的gm-C滤波器设计,以及自动调谐技术在频率稳定性中的应用。最后总结了不同类型gm-C滤波器的优缺点及其适用场景,为高频集成连续时间滤波器的设计提供了全面的技术参考。

fanta的博客 184

【Mini KITTI】KITTI数据集简介 — Mini KITTI

为了快速进行算法调试、训练、评估和验证,以及快速下载,制作了一个mini kitti数据集,数据集的文件目录结构与完整KITTI数据集保持一致。其中,小型的KITTI数据集,即 mini kitti保存了20个训练样本和5个测试样本。下载地址为:。 关于KITTI各个部分的介绍请分别参考以下内容: ...

叶子的博客 7533

<算法>贪心策略设计并解决会场安排问题

🎉每个不曾起舞的日子都是对生命的辜负 🎉写在前面 期末考试邻近,为了更好的应对《算法设计与分析》这门课程,我把书上以及老师讲过的案例都详细的做一个重现及解剖,让你熟记每一个潜在的考点,希望能给大家帮助。 🎉目录 问题描述 贪心策略 算法设计 代码实现 选择结构体 随机输入会议 按结束时间排序 最终会议确定 结束语 问题描述 设有n个会议的集合C={1,2,…,n},其中每个会议都要求使用同一个资源(如会议室),而在同一时间内只能有一个会议使用该资源。每个会议i都有要求使用...

叶落秋白的博客 3050

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

会场安排问题(贪心算法) C++

题目来源:王晓东《算法设计与分析》 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数) 输入格式: 第一行有 1 个正整数k,表示有 k个待安排的活动。 接下来的 k行中,每行有 2个正整数,分别表示 k...

电影中的梦的博客 6294

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

会场安排问题(贪心法)

问题描述: 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。 来换一个描述 为了能够更加生动说明问题的整个过程,所以换一个类似的描述来契合《算法图解》一书中的描述。 你没法让这些课...

我没有三颗心脏的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

会场安排问题(贪心算法)

会场安排问题(贪心算法) 一、题目描述 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。对于给定的k个待安排的活动,计算使用最少会场的时间表。 输入 第1行有1个正整数k,表示有k个待安排的活动。下来的k行中,每行有2个正整数,分别表示k个待安排的活动的开始时间和结束时间。时间以0点开始的分钟计。 输出 将计算出的最少会场数输出到。 样例输入 Copy...

weixin_43553142的博客 1万+

贪心算法(2):会场安排问题(涂色问题)

题目 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数)。 样例 输入 5 1 23 12 28 25 35 27 80 36 50 输出 3 题解 1、 问题的贪心选择性质 证明:首先将会场安排问题数学化,...

i6223671的博客 4031

贪心算法详细介绍(java)以及会场安排问题

用贪心选择策略解会场安排问题。 贪心算法重要的两个性质:贪心选择性质和最优子结构性质。 1、问题的贪心选择性质 证明:首先将会场安排问题数学化,设有n个活动的集合e={1,2,…,n},每个活动i都有一个要求使用该会场的起始时问si和一个结束时问fi。即k是所需最少会场的个数。设活动已排序,(a1,a2,…,ak)是所需要的k个已安排了活动的会场。①...

一曲无痕奈何 5678

会场安排问题(贪心算法Java)

假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的 贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个 顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小 会场数。) 输入格式: 第一行有 1 个正整数k,表示有 k个待安排的活动。 接下来的 k行中,每行有 2个正整数,分别表示 k个待安排的活动开始时间和结束时间。时间 以 0 点开始的分钟计。 输出格式: 输出最少会场数。 输入样例: 5 1 23 12 28 25 3

wowhhhgd的Blog 3318

贪心法求解会场安排问题

动态 规划方法代表了这一类问题的一般解法,我们自底向上构造子问题的解,对每一个子树的 根,求出下面每一个叶子的值,并且以其中的最优值作为自身的值,其它的值舍弃。本实验要求基于算法设计与分析的一般过程(即待求解问题的描述、算法设计、算法描 述、算法正确性证明、算法分析、算法实现与测试),使用贪心法求解会场安排问题,以期 从实践中理解贪心法的思想、求解策略及步骤。3.依次扫描每一个会议,如果会议 i 的开始时间不小于最后一个选入 C 中的会议的结束 时间,则将会议 i 加入 C 中;步骤 3:描述算法。

m0_61679138的博客 882

贪心算法 会场安排问题

会场安排问题 Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld &amp; %llu Submit Status use MathJax to parse formulas Description 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实...

qq_43343854的博客 936

贪心 会场安排问题

Description 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的k个待安排的活动,计算使用最少会场的时间表。 Input 输入数据的第一行有1 个正整数k(k≤10000),表示有k...

juhbvb的博客 130

会场安排问题(贪心策略)

会场安排问题 问题描述:假设要在足够多的会场里安排一批活动,活动的开始时间和结束时间已知,并希望使用尽可能少的会场。设计一个有效的算法进行安排。 分析:这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,就对应要找的最小会场数。 图的最少着色问题,至今没有有效的算法,但这个问题和图的着色问题有不同,活动的时间区间之

xiuweikang的专栏 4115

【贪心算法】会场安排问题

算法实现题 4-1 会场安排问题 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的k个待安排的活动,计算使用最少会场的时间表。 Input 输入数据的第一行有1 个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。.

WR的博客 6551

会场安排问题贪心算法实现C语言

会场安排问题贪心算法实现C语言 博主作为一个入门不久的大二狗,第一次自己写出了这么一个短小精悍的代码,简直要手舞足蹈了,在此记录一下,没想到我也算是有那么一丢丢天赋的,这个问题是计算机算法设计与分析里的一个题目,考虑到我的一位同学把她写的代码写了个博客到csdn上,在收同学算法设计报告时发现某同学直接copy了她写在csdn上的代码,我奉劝各位一句,一时copy一时爽,期末考试火葬场。所以你知道一...

m0_46991979的博客 5649

贪心算法解决会场安排问题

假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点有不同颜色的最小着色数,相应于要找的最小会场数。思路:遍历所有的活动时间,如果时间可叠加到前面已有活动的会场的,则叠加到已有活动;如不可叠加,则新加会场。由文件input.txt给出输入数据,第一行又一个正整数K,表示有K个待安排的活动。接下来有K行数据,每行有两个正整数,分别表示K个待安排的活动的开始时间和结束时间。贪心算法解决会场安排问题。

weixin_71792169的博客 451
上一篇: 【数据库】实验4:触发器实验
下一篇: 【贪心】哈夫曼变形题——最优组合问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值