[贪心] [洛谷] P1233 木棍加工

 

基础贪心

和安排教室一个思路

多线程往下安排即可

 

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

const int MAXN = 1e5 + 10;

struct bn
{
    int beg, end;

}arr[MAXN];



struct sstat
{
    int beg, end;

}brr[MAXN];

int tf = 1;
bool cmp(bn a, bn b)
{
    if(a.beg != b.beg)
        return a.beg > b.beg;
    return a.end > b.end;
}

int main()
{
    int n;

    cin>>n;

    for(int i = 0; i < n; i++)
    {
        cin>>arr[i].beg>>arr[i].end;
    }

    sort(arr, arr + n, cmp);
    
    //for(int i = 0; i < n; i++)
    //  cout<<arr[i].beg<<' '<<arr[i].end<<endl;
    
    brr[0].beg = arr[0].beg;

    brr[0].end = arr[0].end;

    for(int i = 1; i < n; i++)
    {
        for(int j = 0; j < tf; j++)
        {
            if(arr[i].beg <= brr[j].beg && arr[i].end <= brr[j].end)
            {
                brr[j].beg = arr[i].beg;
                brr[j].end = arr[i].end;
                goto l1;
            }
        }

        brr[tf].beg = arr[i].beg;
        brr[tf++].end = arr[i].end;

        l1:
            continue;
    }

    cout<<tf<<endl;

    return 0;
}

 

posted @ 2018-08-04 12:17  张浦  阅读(92)  评论(0编辑  收藏  举报