zoukankan      html  css  js  c++  java
  • UPC-1488 客户调查【贪心】

    题目描述

    公司派你去和几位客户面谈,以了解他们对公司产品的意见。你逐个打电话与客户联系,得知他们一般都很忙,不过他们还是可以为你抽出一点时间。现在的问题是有些客户的时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排这一天的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样才不会让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得忽略不计。

    输入

    共有n+l行,第1行是一个整数n(1≤n≤1000),表示客户总数。接下来n行每行包括两个正整数s、t,分别表示该客户的空闲时间段的起始时间和终止时间,其中s<t。

    输出

    仅1行,输出你所能接触到的最多客户数。

    样例输入

    3
    1 15
    2 19
    15 17
    

    样例输出

    2
    
    首先定义一个结构体数组,用来存起始时间和结束时间。然后在把结构体按照结束时间升序排列(不能按照起始时间升序排列,因为我们的目的是让一个活动尽快结束,以便为接下来的活动腾出更多的时间)
     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 struct node
     5 {
     6     int s,e;
     7 }mp[1005];
     8 bool cmp(node a,node b)
     9 {
    10     return a.e<b.e;
    11 }
    12 int main()
    13 {
    14     int n;
    15     cin>>n;
    16     for(int i=0;i<n;i++)
    17     {
    18         cin>>mp[i].s>>mp[i].e;
    19     }
    20     sort(mp,mp+n,cmp);
    21     int ans=1,temp=mp[0].e;
    22     for(int i=1;i<n;i++)
    23     {
    24         if(temp<=mp[i].s)
    25         {
    26             temp=mp[i].e;
    27             ans++;
    28         }
    29     }
    30     cout<<ans<<endl;
    31     return 0;
    32 }
    View Code
    如有错误,请指正,感谢!
  • 相关阅读:
    021.day21 反射 Class类 反射常用操作
    020.day20 线程概述 多线程优缺点 线程的创建 线程常用方法 生命周期 多线程同步
    019.day19 缓冲流 对象流 标准输入输出流
    018.day18 map集合如何实现排序 File类 IO流 字节流 字符流 编码
    017.day17 Map接口 克隆 treeSet集合排重缺陷
    016.day16 HashSet TreeSet 比较器Comparable Comparator
    015.day15
    014.day14
    013.day13
    线程
  • 原文地址:https://www.cnblogs.com/scott527407973/p/9043397.html
Copyright © 2011-2022 走看看