hpu 問題 I 矩形巢狀問題

2021-07-25 19:49:08 字數 868 閱讀 5121

時間限制: 1 sec

記憶體限制: 128 mb

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

例如(1,5)可以巢狀在(6,2)內,但不能巢狀在(3,4)內。

你的任務是選出盡可能多的矩形排成一行。使得除了最後乙個之外,每個矩形都可以巢狀在下乙個矩形內。

每組測試資料的第一行是乙個正整數n,表示該組測試資料中含有矩形的個數(n<=1000)

隨後的n行,每行有兩個數a,b(0

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

10

1 22 4

5 86 10

7 93 1

5 812 10

9 72 2

5

dp問題,不要一看到sort和結構體就往貪心上懟,區分貪心和dp,明確思路;

本題排序的目的是 s [ i ] 不能巢狀 s[ i+1 ] ,所以根據面積,長,寬都可以排序;

為了避免旋轉圖形,把長寬劃分好;

最後,dp出乙個最長子序列的長度;

#include#include#include#includeusing namespace std;

int b[1010];

struct node

s[1010];

bool cmp(node x,node y)

b[i]++;

ans=max(ans,b[i]);

} printf("%d\n",ans);

} return 0;

}

矩形巢狀問題(DP)

題目來自 nyoj 矩形巢狀 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a輸入的時候處理一下,使座標x y,然後自定義乙個排序函式,以座標x排序,若座標x相等,再以y進行排序,最後轉化為求乙個最長遞增子串行的問題。include incl...

動態規劃 矩形巢狀問題

矩形巢狀 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a根據題意,首先可以想象的到,如果乙個矩形能鑲嵌另乙個矩形,那麼這個矩形的面積就一定比另乙個矩形的面積大了。所以,...

listview巢狀問題

publicstaticvoidsetlistviewheightbasedonchildren listview listview inttotalheight 0 for inti 0,len listadapter.getcount i len i viewgroup.layoutparams...