题解 | #活动安排#

活动安排

http://www.nowcoder.com/practice/16d971e9e42e4f3b9b1e2b8794796a43

第一次写贪心,小记一下

#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>

bool compare(std::pair<int, int> x1, std::pair<int, int> x2) {
  return x1.second < x2.second;
}

int main(int argc, char *argv[]) {
  int count = 0, size = 0, sum = 1;
  std::vector<std::pair<int, int>> activity_time;
  
  std::cin >> count;
  size = count - 1;
  
  while (--count >= 0) {
    int i, j;
    std::cin >> i >> j;
    activity_time.push_back({i, j});
  }
  
  std::sort(&activity_time[0], &activity_time[size+1], compare);  // 排序是左闭右开区间!!
  
  int cur_activity = activity_time[0].second;
  
  for (int i = 0; i < size; i++) {
    if (activity_time[i+1].first >= cur_activity) {
      sum++;
      cur_activity = activity_time[i+1].second;
    }
  }
  
  std::cout << sum << std::endl;
  
  return 0;
}
全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务