贪心算法——会场安排问题
假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。
输入:第1行有一个正整数k,表示有k个待安排的活动。接下来的k行中,每行两个正整数,分别表示k个待安排活动的开始时间和结束时间
输出:所用的最少会场数。
代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。
//输入:第1行有一个正整数k,表示有k个待安排的活动。
//接下来的k行中,每行两个正整数,分别表示k个待安排活动的开始时间和结束时间
//输出:所用的最少会场数。int main(){int k,i,j,t,c;printf("请输入待安排活动数:");scanf("%d",&k); //活动数0printf("请输入待安排活动的开始时间和结束时间:\n");int huodong[k][2];//活动开始/结束时间for(i=0;i<k;i++){scanf("%d %d",&huodong[i][0],&huodong[i][1]);}for(i=0;i<k-1;i++) //冒泡排序按开始时间对活动进行排序{c=0; //早停标志变量for(j=0;j<k-1-i;j++){if(huodong[j][0]>huodong[j+1][0]){c=1;t=huodong[j][0];huodong[j][0]=huodong[j+1][0];huodong[j+1][0]=t;t=huodong[j][1];huodong[j][1]=huodong[j+1][1];huodong[j+1][1]=t;}}if(c==0)break;}int huichang[k];//最多k个会场,数组储存结束时间int top=0; //使用的会场数for(i=0;i<k;i++)//所有活动{c=0; //活动是否安排标志变量for(j=0;j<top;j++)//对所有会场{//会场当前活动结束时间比活动开始时间早if(huichang[j]<huodong[i][0]){//在该会场安排活动c=1;//更改当前会场活动结束时间huichang[j]=huodong[i][1];break;//不用看其余会场}}if(c==0)//如果活动还没有被安排{//新开会场供活动使用huichang[top]=huodong[i][1];top++;}}printf("使用会场数:%d 个",top);return 0;
}
样例输入:
5
1 23
12 28
25 35
27 80
36 50
样例输出:
3
运行截图
贪心算法——会场安排问题相关推荐
- 贪心算法--会场安排问题
会场用来安排活动,每个活动有一个开始时间和一个结束时间,在某个活动的开始时间到结束时间这段范围内,其他活动不能再被安排,求最多能安排多少场活动. #include<stdio.h> #in ...
- 贪心算法——活动安排、会场安排
重要参数:结构体,当前时间time,cmp比较器 第一题--活动安排: 任务描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就是安排学校 ...
- 算法设计与分析——贪心算法——活动安排问题
问题描述:设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源. 每个活动i都有一个要求使用该资源的起始时间si和一个结束时 ...
- 贪心算法-活动安排问题
贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择.当然,希望贪心算法得到的最终结果也是整体最优的.虽然贪心算法不能对所有问题都得到 ...
- 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)
贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...
- 区间贪心算法-——活动安排问题
问题题目 设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束时间 ...
- 算法设计与分析【第七周】贪心算法 活动安排问题
活动安排问题 设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束 ...
- Java 贪心算法 活动安排问题
import org.junit.Test;/*** @auther qwh* @create 2022-11-21-21:39*/ public class test1 {public void s ...
- 【贪心算法】会场安排问题
算法实现题 4-1 会场安排问题 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场.设计一个有效的贪心算法进行安排.(这个问题实际上是著名的图着色问题.若将每一个活动作为图的一个顶点,不相 ...
最新文章
- JS ajax请求参数格式( formData 、serialize)
- vue 时区转换_vue---时间戳转换
- 我的高中生涯大概只有一年半学的是C/C++
- rhel7.4搭建Discuz
- python修饰符用法_c#教程之C#语言中的修饰符汇总
- 解决关于vs2010中w无法 显示的问题
- 页面全部按钮变成disabled=true_手机也能制作大片!只需轻松几步就能把照片变成视频。...
- oracle的.aud文件,Oracle 11g 在audit_file_dest目录下产生大量的aud文件
- 「支持m1」自定义菜单键盘快捷键——CustomShortcuts for mac
- 【数码管识别】需要注意的问题
- webrtc在ubuntu14.04上的编译过程(12.04亦可)
- ASA站点×××,远程站点通过主站上网之配置
- 印章识别软件_一种印章识别方法及系统技术方案
- 泛微OA的SQL语句大全
- Mysql表数据如何增加汇总统计行(GROUP BY WITH ROLLUP函数用法)
- 第二篇 : JShell 工具
- 0001-【linux系统】-用于生物信息分析该如何安装ubuntu系统?
- win10 打开 chm 文件显示异常的解决办法
- JS代码计算正方教务系统目前成绩的加权平均分和平均绩点
- excel 删除重复项
热门文章
- TortoiseGit使用详解(一)
- linux+c+时间间隔+ns,浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程...
- 自考笔记-创业学03(小白简写)
- 基于DAC0832的程控衰减器
- kaggle 入门 泰坦尼克 处理过程
- 采用API方式发送,接收短信(嘉信)
- 从零开始的DIY智能家居 - 基于 ESP32 的智能水浊度传感器
- 代理arp功能的测试方法
- linux 查看目录挂载的ip,基于IP-SAN的存储Linux挂载
- 实验1Java编程基础