[贪心] [洛谷] 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;
}

猜你喜欢

转载自blog.csdn.net/Zeolim/article/details/81409582
今日推荐