若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1737: 会场安排问题

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,174

题目描述

假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。)

对于给定的k个待安排的活动,计算使用最少会场的时间表。

输入

输入数据的第一行有1 个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。时间以0 点开始的分钟计。

输出

输出一个整数,表示最少会场数。

样例输入

5
1 23
12 28
25 35
27 80
36 50

样例输出

3

参考代码

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a, const void *b) 
{
    return *(int*)a > *(int*)b ? 1 : -1;
}
int arrange(int *begin, int *end, int s, int n) 
{
    int count = 0;
    int i = s + 1;
    if(n > 0) 
    {
        count = 1;
        for (; i < n; i++)//循环完后,可以在一起举行的,都来凝结在了一起给它一个会场,剩下的就每个会议分一个会场 
        {
            if(begin[i] >= end[s]) 
            {
                s++;
            } else 
            {
                count++;
            }
        }
    }
    return count;
}
int main() 
{
    int n,t;
    int begin[10000];
    int end[10000];
    scanf("%d",&n);
    for (int i = 0; i < n; i++) 
    {
        scanf("%d %d",&begin[i],&end[i]);
    }
    qsort(begin, n, sizeof(begin[0]), cmp);
    qsort(end, n, sizeof(end[0]), cmp);
    t=arrange(begin, end, 0, n);
    printf("%dn",t);
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Skip 原站点 Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist