正确答案如下:
#include<iostream>
#include<algorithm>
using namespace std;
struct thing{
int lo,wi;
}t[5005];//木棍定义为结构体
bool comp(thing &a,thing &b){
if(a.lo==b.lo)return a.wi>b.wi;
return a.lo>b.lo;
}//定义比较函数,先按从高到低排列长度,长度相同的按从高到低排列宽度
bool used[5005]={};//是否被处理过
int main(){
ios::sync_with_stdio(false);//取消输入流同步,加快输入速度
int n,sum=0,twi;
cin>>n;
for(int i=1;i<=n;i++){
cin>>t[i].lo;
cin>>t[i].wi;
}//输入
sort(t+1,t+n+1,comp);//排序
for(int i=1;i<=n;i++){//双重循环
if(used[i]==0){//如果这个木棍被处理过就跳过
twi=t[i].wi;//保存现有宽度
for(int j=i+1;j<=n;j++){//向后搜索
if(t[j].wi<=twi&&used[j]==0){//如果有宽度小于现有宽度且没有被处理过
used[j]=1;//处理这个木棍
twi=t[j].wi;//保存这个木棍的宽度
}
}
}
}
for(int i=1;i<=n;i++){
if(used[i]==0)sum++;//如果没用过就加1分钟
}
cout<<sum;//输出
return 0;
}
by 陈启旺 @ 2019-04-07 14:53:04
@[陈启旺](/space/show?uid=180322) 希望更丰富的展现?[使用Markd♂wn](https://www.luogu.org/wiki/show?name=%E5%B8%AE%E5%8A%A9%EF%BC%9Amarkdown)
by aminoas @ 2019-04-07 14:57:50