会场安排问题

时间限制:3000 ms  |  内存限制:65535 KB
难度:4
 
描述
学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。
 
输入
第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)
输出
对于每一组输入,输出最多能够安排的活动数量。
每组的输出占一行
样例输入
2
2
1 10
10 11
3
1 10
10 11
11 20
样例输出
1
2
AC代码

#include<stdio.h>
#include<string.h>
int main()
{
 int n,t,x,y,max,min,i,j,m;
 int a[100005];
 scanf("%d",&m);
 while(m--)
 {  
  memset(a,0,sizeof(a));
  scanf("%d",&t);
      max=0;n=t;
     for(i=0;i<t;i++)
  {
        scanf("%d%d",&x,&y);
        if(a[y]!=0)
  {
       if(x>a[y])
        a[y]=x;//相当于按结束时间进行排序
  }
  else a[y]=x;
  }

for(i=0;i<=10000;i++)
   if(a[i]!=0)
   {min=i;break;}

for(i=min;i<=10000;i++)
     if(a[i]>min && a[i]!=0)
  {
   min=i;
      max++;
  }
     printf("%d\n",max+1);//1是第一个节目;
 }
 return 0;
}


按照杭电上的2037 “今年暑假不AC”,超时了
#include<stdio.h>
int main()
{
 int n,t,x,y,max,min,i,j,m;
 int a[100005],b[100005];
 scanf("%d",&m);
 while(m--)
 {   scanf("%d",&t);
  max=0;n=t;
  for(i=0;i<t;i++)
   scanf("%d%d",&a[i],&b[i]);
  for(j=0;j<n-1;j++)//对末尾的时间进行排序,开始的时间也随之变化着,
   for(i=0;i<n-1-j;i++)
    if(b[i]>b[i+1])
    {
     x=a[i];a[i]=a[i+1];a[i+1]=x;
     y=b[i];b[i]=b[i+1];b[i+1]=y;
    }
             //for(i=0;i<t;i++)
     //  printf("%d ",b[i]);
    min=b[0];//排完序后,第一个结束的时间是最小的,所以第一个节目肯定要看,然后如果下一次的开始时间,小于说所录的最小的结束时间,则观看这个节目,
    for(i=1;i<n;i++)
     if(a[i]>min)
     {
      min=b[i];//最小的是节目结束的时间,不断的变化着;
      max++;
     }
     printf("%d\n",max+1);//1是第一个节目;
 }
 return 0;
}
       

ny14 会场安排问题的更多相关文章

  1. nyoj 14 会场安排问题(贪心专题)java

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  2. nyoj 14 会场安排问题(贪心专题)

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  3. ACM 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  4. nyoj 14 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  5. 会场安排问题--nyoj题目14

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  6. NYOJ 14 会场安排问题(也算是经典问题了)

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就 ...

  7. 【ACM】会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  8. nyoj 题目14 会场安排问题

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

  9. [nyoj]会场安排问题-贪心

    会场安排问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...

随机推荐

  1. 算法笔记_189:历届试题 横向打印二叉树(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 二叉树可以用于排序.其原理很简单:对于一个排序二叉树添加新节点时,先与根节点比较,若小则交给左子树继续处理,否则交给右子树. 当遇到空子树 ...

  2. 算法笔记_181:历届试题 回文数字(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的.这样的数字叫做:回文数字. 本题要求你找 ...

  3. margin 负边距应用

    margin-right:负值,在没有设置DOM元素宽度的前提下,DOM元素宽度变宽. <!DOCTYPE html> <html lang="zh-CN"> ...

  4. Access denied with payslip工资条非同部门员工不能创建bug

    Access Denied The requested operation cannot be completed due to security restrictions. Please conta ...

  5. java 正则举例

    Greedy 数量词 X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m ...

  6. IP数据包格式详解(转)

    摘自:http://blog.163.com/hlz_2599/blog/static/1423784742011112195857956/</> TCP/IP协议定义了一个在因特网上传输 ...

  7. Swift代理造成内存泄漏的解决办法

    在swift中,使用代理 ,可能很多人会这样实现: .首先定义一份协议. protocol ToolProrocol{ //代理方法 func didRecieveResults(result:Int ...

  8. ssh之为什么要放弃ssh?

    本文经转载, 源出处不详.https://www.cnblogs.com/hackxiyu/p/6849085.html 最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉s ...

  9. 常用ms-dos命令

    netstat -ano 列出所有的活动链接netstat -ano|findstr 8080(也可以是pid号) 找到端口为8080的程序,例下图

  10. oc引入头文件

    建立.h的头文件(header file)命名为Hi.h,源码如下: #ifndef oc3_Hi_h #define oc3_Hi_h void sayHi(); #endif 建立.c的头文件(c ...