時間限制: 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
每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行
101 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...