#include #include #define MAXNUM 100//矩形的最大个数 struct Rect { int x; int y; }; int n;//矩形个数 struct Rect rect[MAXNUM]; int G[MAXNUM][MAXNUM];//邻接有向图 int d[MAXNUM];//过程数组 int dp(int i,int G[MAXNUM][MAXNUM]); int main() { int i,j,z; printf("输入矩形个数n(1-100):\n"); scanf("%d",&n); printf("输入矩形的长和宽:\n"); for(i=1; i<=n; i++) { scanf("%d",&rect[i].x); scanf("%d",&rect[i].y); } for(i=1; i<=n; i++) for(j=1; j<=n; j++) { if(rect[i].x0) return d[i]; d[i]=1; for(j=1; j<=n; j++) if(G[i][j]) if(dp(j,G)+1>d[i]) { d[i]=dp(j,G)+1; } return d[i]; }