NYOJ-14 会场安排问题

来源:互联网 发布:微信micromsg数据恢复 编辑:程序博客网 时间:2024/06/07 01:54

这里写图片描述


核心思想
典型的贪心算法:
只要满足 第一段时间的尾部时间点 < 第二段时间的头部时间点 就可以了
也就是说:

        int t = -1, ans = 0;        for (int i = 0; i < N; i++) {            if (t < v[i].first) {                ans++;                t = v[i].second;            }        }

全部代码如下:

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct cards {    int first;    int second;};bool cmp(cards v1, cards v2) {    return v2.second > v1.second;}cards v[10001];int N;int main() {    int n;    cin >> n;    while(n--) {        cin >> N;        for (int i = 0; i < N; i++)            scanf("%d%d", &v[i].first, &v[i].second);        sort(v, v+N, cmp);        int t = -1, ans = 0;        for (int i = 0; i < N; i++) {            if (t < v[i].first) {                ans++;                t = v[i].second;            }        }        printf("%d\n", ans);    }    return 0;} 

这里写图片描述

2015年9月13日19:42:07

0 0
原创粉丝点击