活动安排问题(贪心)

有若干个活动,第i个开始时间和结束时间是[Si,fi),同一个教室安排的活动之间不能交叠,求要安排所有活动,最少需要几个教室?
Input
第一行一个正整数n (n <= 10000)代表活动的个数。
第二行到第(n + 1)行包含n个开始时间和结束时间。
开始时间严格小于结束时间,并且时间都是非负整数,小于1000000000
Output
一行包含一个整数表示最少教室的个数。
Sample Input
3
1 2
3 4
2 9
Sample Output
2
1.1
分析:

**最大区间不相交问题**题目中给的数据太水了 一开始没有完全理解题目的意思 应该是每选择一次 都要整体遍历一次有没有符和要求的 设置两个变量 start end 注意是按照start升序排序,而不是按照end 这一点要想明白

下面给出了一组比较好的测试数据可以检验你写的代码是否正确:

1.2
刚开始想的错误代码的核心

      t=a[0].e;for(i=1;i<n;i++){if(a[i].s>=t){ count=count;t=a[i].e;//错误在于每次只比较下一个是否符合要求 而不看总体有没有符合要求的}else count++;}

1.3
修改之后的核心代码:

    for(i=0;i<n;i++){if(b[i]==0){count++;t=p[i].end;for(j=i+1;j<n;j++)if(p[j].start>=t&&b[j]==0){count=count;t=p[j].end;b[j]=1;} }}

1.4
代码总览:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
struct node{int start;int end;
}p[100000];
int cmp(node a,node b)
{if(a.start==b.start)return a.end<b.end;return a.start<b.start;
}
int main()
{int n,i,j,t;while(scanf("%d",&n)!=EOF){for(i=0;i<n;i++)scanf("%d %d",&p[i].start,&p[i].end);sort(p,p+n,cmp);int b[100000]={0};int count=0;for(i=0;i<n;i++){if(b[i]==0){count++;t=p[i].end;for(j=i+1;j<n;j++)if(p[j].start>=t&&b[j]==0){count=count;t=p[j].end;b[j]=1;} }}printf("%d\n",count);}return 0;
}

活动安排问题(贪心)相关推荐

  1. 活动安排问题(贪心算法)

    问题描述: 有n个活动的活动集合E ,其中每一个活动都要求使用同一个资源,而在同一个时刻内资源只能被一个活动使用,每一个活动都有开始是时间和结束时间,要求从活动集合E中选出m个活动,使着m个活动都能顺 ...

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

    活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子.该问题要求高效地安排一系列争用某一公共资源的活动.贪心算法提供了一个简单.漂亮的方法使得尽可能多的活动 ...

  3. java活动安排_贪心法求解活动安排(java实现)

    贪心法描述: 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优 ...

  4. 解题报告 『活动安排(贪心)』

    原题地址 第一次提交WA了两个点,因此特地写一篇博客. 错误见代码: #include <bits/stdc++.h> using namespace std; #define rep(i ...

  5. 贪心法——活动安排问题

    贪心法--活动安排问题 贪心法 贪心法的本质可以认为是动态规划在特定条件下的优化.贪心法满足两个性质,最优子结构性质和贪心选择性质. 满足最优子结构性质意味着问题可以被层层分解为子问题,这些子问题构成 ...

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

    活动安排问题 简介 活动安排问题是需要共享公共资源的一系列活动的高效安排问题,以在限定的资源前提下尽可能多地安排活动.一般,算法题中给出开始结束时间的活动序列都可以使用这种贪心思路. 问题描述 有若干 ...

  7. C++编程笔记:贪心算法实现活动安排问题

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

  8. 活动安排--贪心算法C语言实现

    一.前言 大三下的算法设计分析课程.每周必备二道算法题.头疼.自己写的,大家看看就行.题目,我就截图 ,懒得赋文字了. 二.内容 代码: #include<stdio.h> typedef ...

  9. 贪心算法之 活动安排(Java代码实现)

    活动安排问题 – 资源争夺 问题描述 设有 n 个活动的集合 A = {1, 2, - , n}, 其中每个活动都要求使用同一资源,而在同一时间段内只有一个活动能使用资源 要求高效安排一系列争用公共资 ...

最新文章

  1. 如何搭建一个拖垮公司的技术架构?
  2. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx
  3. 【MATLAB】变量 ( 变量引入 | 变量类型 )
  4. ML之LiRLasso:基于datasets糖尿病数据集利用LiR和Lasso算法进行(9→1)回归预测(三维图散点图可视化)
  5. php 视图层smarty,4. 视图引擎 View Engine - Smarty
  6. 高考计算机会考基础知识点,2017高考一定会考的46个知识点!
  7. CM:How is the version of word installed in client returned to Application server
  8. vue项目,cli-3.0项目部署运行报错:Uncaught SyntaxError: Unexpected token
  9. sparkwordcount
  10. 系统类配置(一)【安装windows10与ubuntu16.04双系统-附镜像资源】
  11. 微信小程序sass不编译怎么办_不吹牛,四款免费实用的微信小程序,打开立即使用!...
  12. 黑马程序员Git教程笔记
  13. SYN 包(synchronize)
  14. 幻立方解法之素数3阶幻立方
  15. python爬虫进程和线程的区别_熬了两个通宵写的!终于把多线程和多进程彻底讲明白了!...
  16. 第7章第21节:双图排版:两张图片左右并列排版 [PowerPoint精美幻灯片实战教程]
  17. python进行简单的文本相似度分析
  18. 云展网 课件 图片 下载
  19. 有源代码就可以自行开发通达信交易接口了吗?
  20. 去哪儿网BI平台建设演进与实践

热门文章

  1. 如何安装knockout 2.0
  2. 保险行业APP开发需要哪些功能?
  3. MySQL数据库导入导出操作
  4. 1039: n个数求和 Python
  5. Linux修改权限命令chmod用法示例
  6. 一张煎饼里的产品精神和互联网思维
  7. 【Flutter】使用BottomAppBar自定义bottomNavigationBar
  8. 正文1:网页的交互方式
  9. 初次使用eolink感受
  10. iterable类型