信息学竞赛一本通提高版AC题解—例题1.1活动安排

书中代码有误。书中为sort(a+1,a+n+1,Cmp)。

 

//
// Created by yuxi on 19-1-13.
//

/*
 *
 * 《信息学竞赛一本通-提高版》全部AC解答及解释
 *
 * 第一部分 基础算法
 * 第一章 贪心算法
 * 例题1 活动安排
 *
 */

#include <iostream>
#include <algorithm>
#include <fstream>
#include <string>
using namespace std;

struct node{
  int st;
  int ed;
}a[1005];

bool Cmp(node x, node y){
  return x.ed < y.ed;
}

int ActivityArrangement(node* a, int n){
  sort(a, a+n+1, Cmp);
  int t = a[1].ed;
  int ans = 1;
  for(int i=2; i<=n; i++) {
    if (a[i].st >= t) {
      ans++;
      t = a[i].ed;
    }
  }
  return ans;
}


int main(){
  // open filestream
//  fstream inFile;
//  string FilePath = "/home/yuxi/Work/githubrepo/myrepo/YiBenTong/Section1Chapter1_GreedyAlgorithm/data/example1.in";
//  inFile.open(FilePath);

  int n;
  cin >> n;
//  inFile >> n;
  for(int i=0; i<=n; i++)
    cin >> a[i].st >> a[i].ed ;
//    inFile >> a[i].st >> a[i].ed ;
  int ans = ActivityArrangement(a, n);
  cout << ans << endl;
  return 0;
}

 

posted @ 2019-01-13 22:56  yuxihong  阅读(267)  评论(0编辑  收藏  举报