TJOI2015 組合數學 解題報告

2022-04-29 22:00:14 字數 705 閱讀 9583

這不是個貪心嗎?

怎麼都最小鏈覆蓋=最大點獨立集去了

注意到乙個點出度最多只有2,可以貪心一下出度的去向

按讀入順序處理就可以,維護乙個\(res_i\)陣列,表示上一行第\(i\)列可以流給下面那個格仔的次數,然後如果當前這個格仔不夠用,從右往左把所有的還有次數的\(res\)拿過來給當前格仔用就可以了。

考慮這樣的正確性,每個格仔已經用了上面的,當然繼續從左邊的用啦

code:

#include #include #include template void read(t &x)

const int n=1010;

const int inf=0x3f3f3f3f;

int res[n],s[n],tot;

void work()

{ memset(res,0,sizeof res);

int n,m,ans=0;

read(n),read(m);

for(int a,i=1;i<=n;i++)

{ res[s[tot=1]=0]=inf;

for(int j=1;j<=m;j++)

{ read(a);

if(a>res[j])

{int d=a-res[j];

while(res[s[tot]]2019.2.24

TJOI2015 組合數學

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

TJOI2015 組合數學

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

TJOI2015 組合數學

題目 學習了 rm dilworth 定理,即偏序集的最小全序集劃分等於最大反鏈長度 定理的內容看起來非常自閉,偏序集 全序集和反鏈都是個啥 偏序集其實非常常見,經典的二維偏序 三維偏序其實就是最基本的偏序關係,比如說乙個二元組集合 a 對於 x 1,y 1 x 2,y 2 in a 當 x 1 l...