NYOJ16 矩形巢狀 (最長遞增子串行)

2021-08-07 03:58:39 字數 807 閱讀 2643

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:4描述

有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x(a,b)可以巢狀在矩形y(c,d)中當且僅當a

輸入

第一行是乙個正正數n(0輸出

每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行

樣例輸入

1

101 2

2 45 8

6 10

7 93 1

5 812 10

9 72 2

樣例輸出

5ac**:

#include #include using namespace std;

struct node

x[105];

int cmp(node x,node y)

else

}for(int i=0;ix[j].l&&x[i].w>x[j].w&&max[j]+1>max[i])

max[i]=max[j]+1;//實質就是求到i處的最長遞增子串行的長度,即矩形巢狀的最大個數

}sort(max,max+n);//將在各個i處的最大巢狀矩形數從小到大排序,此步驟不能省,最後乙個矩形長寬相對大但不一定就能巢狀的最多

printf("%d\n",max[n-1]);//如1 1,2 2,2 4這三個矩形,max[i]分別對應的值為1,2,1,可見i=1時,max[i]最大,所以要排序

} return 0;

}

nyoj 16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當ab套在 6,2 內,但不能巢狀在 3,4 中。你的任務是選出盡可 能多的矩形排成一行,使得除最後乙個外,每乙個矩形都可以巢狀...

NYOJ 16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 ...

NYOJ16 矩形巢狀

時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 1...