TJOI2015 組合數學

2022-03-26 21:06:14 字數 1552 閱讀 4161

題目

學習了\(\rm dilworth\)定理,即偏序集的最小全序集劃分等於最大反鏈長度

定理的內容看起來非常自閉,偏序集、全序集和反鏈都是個啥

偏序集其實非常常見,經典的二維偏序、三維偏序其實就是最基本的偏序關係,比如說乙個二元組集合\(a\),對於\((x_1,y_1),(x_2,y_2)\in a\),當\(x_1\leq x_2,y_1\leq y_2\)時我們稱\((x_1,y_1)\leq (x_2,y_2)\),則\((a,\leq )\)為乙個偏序集

如果存在\(x_1\leq x_2,y_1>y_2\),我們就無法在\((a,\leq)\)這個偏序集中定義\((x_1,y_1),(x_2,y_2)\)的大小關係,那麼就稱\((x_1,y_1),(x_2,y_2)\)在\((a,\leq)\)中不可比

全序集是偏序集的乙個子集,如果\(b\subseteq a\),且\(\forall (x_1,y_1),(x_2,y_2)\in b\),存在\((x_1,y_1)\leq (x_2,y_2)\)或\((x_2,y_2)\leq (x_1,y_1)\),即兩兩元素可比,則稱\(b\)為\(a\)的乙個全序集

如果對於\(a\)的乙個子集,其中元素兩兩不可比,則稱該子集為乙個反鏈

於是這個定理通俗理解一下大概就是,把乙個偏序集劃分成若干個兩兩可比的集合,這個劃分數的最小值等於最大的兩兩不可比的子集的元素個數。

這個定理還可以推廣到\(\rm dag\)上,即\(\rm dag\)的最小路徑劃分等於最大獨立集的大小

這也非常好理解,我們可以把\(\rm dag\)的邊看成偏序集的大小關係,最小路徑劃分等價於選出一些全序集,而最大獨立集保證兩兩點不可達,即是乙個最大反鏈。

對於這道題我們可以大致理解為如果兩個格仔\((a,b),(c,d)\)存在\(a\leq c,b\leq d\),我們就稱兩個格仔存在偏序關係。

不難發現由於我們只能向下或向右走,我們一次走過的點一定是乙個全序集,而我們要求的就是全序集的最小劃分數。

所以我們求乙個最大反鏈長度即可。

由於我們經過乙個點一次只能使得這個點的點權減一,所以我們把每個點視為點權個點。搞乙個從左上往右下轉移的dp即可。

**

#include#define re register

#define ll long long

#define max(a,b) ((a)>(b)?(a):(b))

#define min(a,b) ((a)<(b)?(a):(b))

inline int read()

const int maxn=1e3+5;

int t,n,m,a[maxn][maxn];

ll dp[maxn][maxn];

int main()

ll ans=0;

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

for(re int j=1;j<=m;j++) ans=max(ans,dp[i][j]);

printf("%lld\n",ans);

} return 0;

}

TJOI2015 組合數學

這個東西一看就是二維偏序嗎?首先考慮把乙個權值為v的點拆成v的相同的點,這v個點相互不可比的。這樣答案變成了最小鏈覆蓋。dilworth定理 最小鏈覆蓋 最大反鏈。乙個點拆成了v的點,因為這v個點互不可比,那這v個點肯定要同時選,所以其實相當求點權和最大的反鏈,這個寫個sb動態規劃就行了。code ...

TJOI2015 組合數學

為了提高智商,zjy開始學習組合數學。某一天她解決了這樣乙個問題 給乙個網格圖,其中某些格仔有財寶。每次從左上角出發,只能往右或下走。問至少要走幾次才可能把財寶全撿完。但是她還不知足,想到了這個問題的乙個變形 假設每個格仔中有好多塊財寶,而每一次經過乙個格仔至多只能撿走一塊財寶,其他條件不變,至少要...

TJOI2015 組合數學

為了提高智商,zjy開始學習組合數學。某一天她解決了這樣乙個問題 給乙個網格圖,其中某些格仔有財寶。每次從左上角出發,只能往右或下走。問至少要走幾次才可能把財寶全撿完。但是她還不知足,想到了這個問題的乙個變形 假設每個格仔中有好多塊財寶,而每一次經過乙個格仔至多只能撿走一塊財寶,其他條件不變,至少要...