零件分组(stick)

#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
    int l,w;
}a[1010];
int t[1010];
bool cmp(node x,node y)
{
    if(x.l==y.l) return x.w<y.w;
    return x.l<y.l;
}
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].l>>a[i].w;
    }
    sort(a+1,a+n+1,cmp);
    int ans=0;
    bool flag=0;
    for(int i=1;i<=n;i++)
    {
        flag=0;
        for(int j=1;j<=ans;j++)
        {
            if(a[i].w>=t[j])
            {
                t[j]=a[i].w;
                flag=1;
                break;
            }
        }
        if(!flag)
        {
            ans++;
            t[ans]=a[i].w;
        }
    }
    cout<<ans;
    return 0;
}

先给长度排序,再按条件将重量分组

原文地址:https://www.cnblogs.com/Chri-K/p/13809876.html