提交时间:2019-11-09 17:30:45

运行 ID: 2153

struct node //定义零件结构体 { int l;//长度 int w;//重量 }; node a[1005];//存储输入的零件 int b[1005];//存储序列长度 bool cmp(node a, node b)//定义排序方法 { return a.l<b.l || (a.l==b.l && a.w<b.w);//升序 } int main( ) { int n; cin>>n; for (int i=0;i<n;i++) { cin>>a[i].l; cin>>a[i].w; } sort(a,a+n,cmp);//按定义的排序方法排序 int ans=0;//输出值 for (int i=0;i<n;i++)//动态规划求最长递减子序列的长度 { b[i]=1; for (int j=0;j<i;j++) { if (a[i].w < a[j].w && b[i]<b[j]+1) { b[i]=b[j]+1; ans=max(ans,b[i]); } } } cout<<ans; return 0; }