##DAG上的动态规划
嵌套矩形问题
Description:
有n个矩形,每个矩形可以用两个整数a、b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中,当且仅当 a<c,b<d,或者b<c,a<d(相当于把矩形旋转90°)。例如,(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)内。你的任务是选出尽可能多的矩形排成一行,使得除了最后一个之外,每一个矩形都可以嵌套在下一个矩形内。
输出最大的矩形数
AC代码如下
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=50;
bool G[maxn][maxn]; //用来储存边关系。
int d[maxn];
struct Rectangle
{
int length; //长
int width; //宽
};
int dp(int i