题目:
分析:就是找最少的组数,但不知道从何下手。
我特么就是菜鸡,这不就是导弹问题吗?
我所期望的:
代码:
#include<bits/stdc++.h>
using namespace std;
struct MG{
int l, w;
} m[5050];
int D2[5050];
bool cmp(MG x, MG y){
if (x.l != y.l) return x.l > y.l;
else return x.w > y.w;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>m[i].l>>m[i].w;
}
sort(m, m + n, cmp);
int len2 = 0;
D2[0]=m[0].w;
for (int i=1; i<n; i++) {
if (D2[len2] < m[i].w) D2[++len2] = m[i].w;
else {
int p2 = lower_bound(D2, D2 + len2,m[i].w) - D2;
D2[p2] = m[i].w;
}
}
cout<<len2+1;
}