假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。

输入:第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

运行截图

贪心算法——会场安排问题相关推荐

  1. 贪心算法--会场安排问题

    会场用来安排活动,每个活动有一个开始时间和一个结束时间,在某个活动的开始时间到结束时间这段范围内,其他活动不能再被安排,求最多能安排多少场活动. #include<stdio.h> #in ...

  2. 贪心算法——活动安排、会场安排

    重要参数:结构体,当前时间time,cmp比较器 第一题--活动安排: 任务描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就是安排学校 ...

  3. 算法设计与分析——贪心算法——活动安排问题

    问题描述:设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源. 每个活动i都有一个要求使用该资源的起始时间si和一个结束时 ...

  4. 贪心算法-活动安排问题

    贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择.当然,希望贪心算法得到的最终结果也是整体最优的.虽然贪心算法不能对所有问题都得到 ...

  5. 信息学奥赛第九节 —— 贪心算法(需要安排几位师傅加工零件 + 排队打水问题)

    贪心算法的特点 对于问题求解时,总是做出在当前来看是最好的选择的策略,即贪心算法不从整体来考虑问题.贪心算法与排序.高精度.背包等算法不同,没有一个特定的模板来表达贪心算法的过程. 贪心的步骤 抽象出 ...

  6. 区间贪心算法-——活动安排问题

    问题题目 设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束时间 ...

  7. 算法设计与分析【第七周】贪心算法 活动安排问题

    活动安排问题 设有n个活动的集合E={1,2,-,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源.每个活动i都有一个要求使用该资源的起始时间si和一个结束 ...

  8. Java 贪心算法 活动安排问题

    import org.junit.Test;/*** @auther qwh* @create 2022-11-21-21:39*/ public class test1 {public void s ...

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

    算法实现题 4-1 会场安排问题 假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场.设计一个有效的贪心算法进行安排.(这个问题实际上是著名的图着色问题.若将每一个活动作为图的一个顶点,不相 ...

最新文章

  1. JS ajax请求参数格式( formData 、serialize)
  2. vue 时区转换_vue---时间戳转换
  3. 我的高中生涯大概只有一年半学的是C/C++
  4. rhel7.4搭建Discuz
  5. python修饰符用法_c#教程之C#语言中的修饰符汇总
  6. 解决关于vs2010中w无法 显示的问题
  7. 页面全部按钮变成disabled=true_手机也能制作大片!只需轻松几步就能把照片变成视频。...
  8. oracle的.aud文件,Oracle 11g 在audit_file_dest目录下产生大量的aud文件
  9. 「支持m1」自定义菜单键盘快捷键——CustomShortcuts for mac
  10. 【数码管识别】需要注意的问题
  11. webrtc在ubuntu14.04上的编译过程(12.04亦可)
  12. ASA站点×××,远程站点通过主站上网之配置
  13. 印章识别软件_一种印章识别方法及系统技术方案
  14. 泛微OA的SQL语句大全
  15. Mysql表数据如何增加汇总统计行(GROUP BY WITH ROLLUP函数用法)
  16. 第二篇 : JShell 工具
  17. 0001-【linux系统】-用于生物信息分析该如何安装ubuntu系统?
  18. win10 打开 chm 文件显示异常的解决办法
  19. JS代码计算正方教务系统目前成绩的加权平均分和平均绩点
  20. excel 删除重复项

热门文章

  1. TortoiseGit使用详解(一)
  2. linux+c+时间间隔+ns,浅析 Linux 中的时间编程和实现原理,第 1 部分: Linux 应用层的时间编程...
  3. 自考笔记-创业学03(小白简写)
  4. 基于DAC0832的程控衰减器
  5. kaggle 入门 泰坦尼克 处理过程
  6. 采用API方式发送,接收短信(嘉信)
  7. 从零开始的DIY智能家居 - 基于 ESP32 的智能水浊度传感器
  8. 代理arp功能的测试方法
  9. linux 查看目录挂载的ip,基于IP-SAN的存储Linux挂载
  10. 实验1Java编程基础