矩陣覆蓋(DAG上的dp 或者 LIS)

2022-05-26 19:18:11 字數 926 閱讀 7493

思路完全模仿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 ...