有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但

. #include<stdio.h>
02. #include<string.h>
03. #include<algorithm>
04. using namespace std;
05. struct stu
06. {
07. int a,b;
08. }s[1020];
09. int dp[1020];
10. int cmp(stu x,stu y)
11. {
12. if(x.a<y.a)
13. return 1;
14. else if(x.a==y.a&&x.b<y.b)
15. return 1;
16. else
17. return 0;
18. }
19. int main()
20. {
21. int t,i;
22. scanf("%d",&t);
23. while(t--)
24. {
25. int n,j,ans;
26. scanf("%d",&n);
27. for(i=0;i<n;i++)
28. {
29. scanf("%d%d",&s[i].a,&s[i].b);
30. if(s[i].a<s[i].b)
31. swap(s[i].a,s[i].b);
32. }
33. sort(s,s+n,cmp);
34. ans=0;
35. for(i=0;i<n;i++)
36. {
37. dp[i]=1;
38. for(j=0;j<i;j++)
39. {
40. if(s[j].a<s[i].a&&s[j].b<s[i].b)
41. dp[i]=max(dp[i],dp[j]+1);
42. }
43. ans=max(ans,dp[i]);
44. }
45. printf("%d\n",ans);
46. }
47. return 0;
48. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值