思路完全模仿lrj白書。
25題斬。
具體而言,我們發現兩個矩形之間是包含關係,比如說a包含於b,我們可以認為,a可以推出b,同理若b可以推出c,則a也可以推出c。
這就好像是乙個dag,於是本題轉化成了求dag上的最長路問題。
我們只需要對於每乙個點都dp一下就好了。
#include #include#include
using
namespace
std;
const
int maxn = 1005
;int
t, n;
struct
node
a[maxn];
intg[maxn][maxn], vis[maxn], d[maxn];
int dp(int
x)void print_ans(intx)}
void
solve()
memset(g,
0, sizeof
g);
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if(a[i].x < a[j].x && a[i].y int mx = 0
; memset(d,
0, sizeof
d); memset(vis,
0, sizeof
vis);
intjl;
for (int i = 1; i <= n; i++)
if (!vis[i])
}printf(
"%d\n
", mx);
print_ans(jl);
}int
main()
DAG上的DP之 矩形巢狀
昨天隊長說dag,今早就蹦躂蹦躂滴開搞了,小白書 翻呀翻,看呀看,媽蛋,lrj留的問題那麼深奧讓彩筆情何以堪啊 德瑪西亞 原諒彩筆只能刷水題啊 南陽理工oj上的題 時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,...
DAG上的動態規劃
dag模型 有n個矩形,每個矩形用兩個整數a,b描述,表示長和寬,矩形 a,b 可以巢狀在矩形 c,d 中,當且僅當a小於c,b小於d或b小於c,a小於d。要解決的問題就是從眾多矩形中選出最多的矩形,使其可以按要求排成一列,若有多解,矩形編號的字典序要盡可能小。分析 按照書上的分析很簡單易懂,也容易...
DAG上的動態規劃
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 ...