矩形嵌套

矩形嵌套

时间限制:3000 ms  |  内存限制:65535 KB

难度:4

描述

有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a

输入

第一行是一个正正数N(0 每组测试数据的第一行是一个正正数n,表示该组测试数据中含有矩形的个数(n<=1000)
随后的n行,每行有两个数a,b(0

输出

每组测试数据都输出一个数,表示最多符合条件的矩形数目,每组输出占一行

样例输入

1
10
1 2
2 4
5 8
6 10
7 9
3 1
5 8
12 10
9 7
2 2

样例输出

5
#include
#include
#include
using namespace std;
struct data
{
	int x,y;
}a[110];
int g[110][110],d[110];
int main()
{
	int t,n,x,y;
	cin>>t>>n;
	while(t--)
	{
		for(int i=1;i<=n;i++)  cin>>a[i].x>>a[i].y,d[i]=1;
		for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			if((a[i].x=1;i--)
		{
			int cnt=0;
			for(int j=i;j<=n;j++)
			{
				if(g[i][j]==1)
				{
					cnt=max(cnt,d[j]+1);
				
				}
			}
			d[i]=+cnt+1;
			
		}
		
		
		int ans=-1;
		for(int i=1;i<=n;i++) ans=max(ans,d[i]);
		cout<

 

你可能感兴趣的:(动态规划)