NYOJ16 矩形巢狀 DAG上的DP LIS

2022-03-22 19:06:40 字數 911 閱讀 1577

矩形巢狀

時間限制: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 cmp(node a,node b)

a[n];

bool cmp(node a,node b)

int dp[n];

int main()

}/* 採用記憶化搜尋 求從s能到達的最長路徑 */

int dp(int s)

}return ans;

}void print_ans(int i)

}//for(j)

}int main()}/*

建圖 g[i][j]為1表示矩形i可以巢狀在矩形j中

那麼原問題便轉化為求dag上的最長路徑

定義狀態dp[i]表示從結點i出發可以到達的最長路徑

則 dp[i] = max(dp[j] + 1), 其中 g[i][j]=1,

*/memset(g, 0, sizeof g);

for (int i = 1; i <= n; ++i)

}}//for(i)

memset(dp, 0, sizeof dp);

int ans = 0;

int best;

for (int i = 1; i <= n; ++i)

}//for(i)

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

print_ans(best);

printf("\n");

}return 0;

}

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

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

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

題目鏈結 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 分析 矩形之間的 可巢狀 關係是乙個典型...

nyoj 16 矩形巢狀

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