dp專題 DGA上的dp 最長路 矩陣巢狀

2021-09-24 11:21:50 字數 1038 閱讀 6079

題目大意:

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

第一行是乙個正正數n(0輸出

每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行

//分析:如果第i個矩陣能巢狀第j個矩陣。直接建圖i->j。

//dp轉移方程dp[i]=max(dp[j]+1, dp[i])(i->j有邊)

//記憶化搜尋。

#include

#define ll long long

using

namespace std;

int a[

1005];

int b[

1005];

int dp[

1005];

vector<

int> e[

1005];

intdfs

(int u)

ans=1;

for(

int i=

0;i.size()

;i++

)return dp[u];}

intprintf_ans

(int u)

printf

("%d "

,u);

for(

int i=

0;i.size()

;i++)}

}int

main()

for(

int i=

1;i<=n;i++

)for

(int i=

1;i<=n;i++

)//建圖}}

for(

int i=

1;i<=n;i++)}

printf

("%d\n"

,max)

;printf_ans

(tag)

;printf

("\n");

}return0;

}

dp專題 最長公共子串行

最長公共子串行 題目描述 乙個給定序列的子串行是在該序列中刪去若干元素後得到的序列。確切地說,若給定序列x1,x2,x,則另一串行z1,z2,zk是x的子串行是指存在乙個嚴格遞增的下標序列使得對於所有j 1,2,k有 x例如,序列zb,c,d,b是序列xa,b,c,b,d,a,b的子串行,相應的遞增...

Tarjan演算法縮點 DAG最長路 DP

我們按照複雜程度來討論不同的tarjan演算法變形的差異.但此時只是有所區分的將所有的點劃分為乙個個的強連通分量,尚且沒有縮點.上面這個功能實現起來最簡單.它的tarjan函式內 的.void tarjan int u else if in stack v 還剩下一種不在棧中但是已經訪問過的情況,是...

dp專題 神奇的口袋

有乙個口袋容積為m,有n個物品,題目的體積為a1,a2,a3 an。把m裝滿有多少種不同的裝法。遞迴 int dfs int n,int m 從n個物品中選出總體積為m的選法 遞推 dp i j dp i 1 j j a i dp i 1 j a i 0 初始條件 dp i 0 1 0 i n 全部...