題目大意:
描述有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 全部...