題目描述
有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x(a,b)可以巢狀在矩形y(c,d)中當且僅當a紫書上有題目,但是沒有寫題出自**,只好自己大致寫一下題目了.
做題感受:經典的dp問題,但是由於我剛入門dp並不能特別快理解,想出來了還好說。
思路:狀態轉移方程d(i)=max.d(i)表示從i出發的最長路長度,d(j)是能被d(i)巢狀的點,因此d(j)需要+1.
之後遍歷所有點,找出所有點中最大的d(i)就是最終答案.
下面是我的**:
#include
using
namespace std;
typedef
long
long ll;
const
int inf =
0x3f3f3f3f
;struct juxingjuxing[
1010];
int g[
1010][
1010];
//用來建立圖
int d[
1010];
//用來記錄從節點(i)出發的最長路長度.
int n;
intdp
(int i)
return ans;
}void
print
(int i)
//利用遞迴,字典序輸出最長路徑}}
intmain()
}int maxn =0;
int maxi =0;
for(i =
1; i <=n; i++)}
cout << maxn << endl;
print
(maxi)
;//輸出路徑
}return0;
}
DAG模型 矩形巢狀
有n個矩形,每個矩形可以用兩個整數a,b描述,表示它的長和寬。矩形x a,b 可以巢狀在矩形y c,d 中,當且僅當 a 你的任務是選擇盡量多的矩形排成一行,使得除最後乙個矩形外所有矩形都可以巢狀在下乙個矩形內。如果存在多解,矩形編號的字典序應盡量小。如下 include include inclu...
(dag模型 最長路 字典序)巢狀矩形
有 n 個矩形,每個矩形可以用兩個整數 a,b 描述,表示它的長和寬。矩形 x a,b 可以巢狀在矩形 y c,d 中當且僅當 a c,b d,或者 b c,a d 相當於把矩形 x 旋轉了 90 例如 1,5 可以巢狀在 6,2 內,但不能巢狀在 3,4 內。你的任務是選出盡量多的矩形,使得除了最...
紫書訓練 7 11
貪心場次 密碼 996996 有點思維 include define il inline define pb push back define fi first define se second define ms data,v memset data,v,sizeof data define sc...