NYOJ 16 矩形巢狀 DAG上的動態規劃

2021-08-07 02:38:53 字數 789 閱讀 6336

【題目鏈結】

nyoj16-矩形巢狀

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

【樣例】

樣例輸入110

1 22 4

5 86 10

7 93 1

5 812 10

9 72 2

樣例輸出

5【分析】

矩形之間的「可巢狀」關係是乙個典型的二元關係,二元關係可以用圖來建模。如果矩形x可以巢狀在矩形y裡,就從x到y連一條有向邊。這個有向圖是無環的,因為乙個矩形無法直接或間接地巢狀在自己內部。換句話說,它是乙個dag。這樣,所要求的便是dag上 的最長路徑。

【**】

#include#include#include#includeusing namespace std;

#define maxn 1005

struct node;

node s[maxn];

bool c[maxn][maxn];

int dp[maxn];

bool cmp(node a,node b){

return a.m>t;

while(t--){

scanf("%d",&n);

memset(c,false,sizeof(c));

int x,y;

for(int i=0;i=0;i--){

for(int j=i+1;j=0;i--){

dp[i]=1;

for(int j=i+1;j

NYOJ16 矩形巢狀 DAG上的DP LIS

矩形巢狀 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當ausing namespace std define n 1005 struct node a n bool cm...

nyoj 16 巢狀矩形(DAG上的動態規劃)

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

nyoj 16 矩形巢狀

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