CSP模擬賽 鳳凰院兇真(最長公共上公升子串行)

2022-03-17 03:58:27 字數 779 閱讀 2647

α世界線.鳳凰院兇真創立了反抗sern統治的組織「瓦爾基裡」.為了脫離α線,他需要製作乙個世界線變動率測量儀.

測量乙個世界線相對於另乙個世界線的變動率,實質上就是要求出這兩個世界線的最長公共合法事件序列.

乙個世界線的事件邏輯序列是乙個正整數序列,第k個數表示第k個事件發生的時間.對於乙個世界線,乙個合法的事件序列是事件邏輯序列的乙個子串行,滿足時間嚴格遞增.

現在,對於兩個不同的世間線α,β求出最長的乙個事件序列,滿足這個序列在α,β世界線中均是合法的.這個序列也就是之前提到過的最長公共合法事件序列.

第一行乙個整數n,表示世界線α的事件個數.

第二行n個整數a1;a2......an,表示世界線的事件邏輯序列.

第三行乙個整數m,表示世界線β的事件個數.

第四行m個整數b1;b2......bm,表示世界線的事件邏輯序列.

第一行乙個整數k,表示最長公共合法事件序列的長度.

第二行k個整數,表示最長公共合法事件序列.如果有多解,輸出任意乙個.

樣例輸入

51 4 2 5 1

41 1 2 4

樣例輸出

21 4

分析雖然聽機房的大佬們說這是一道最長公共上公升子串行的板子題,然而我不會。。。。。。

根據最長公共序列的求法,可以考慮二維狀態dp[i][j]

如果dp[i][j]表示a序列前i個事件,b序列前j個事件構成的最長公共上公升子串行的長度

,轉移時因為不知道最後一項的大小所以無法轉移

如果dp[i][j]表示a序列第i個事件,b序列第j個事件作為結尾的

Jzoj5424 鳳凰院兇真

給你兩個序列a和b,求出他們的最長公共上公升子串行並輸出方案 動態規劃,我們假設f i j 表示a處理到第i位,b處理到第j位時的長度 那麼顯然,若a i b j 那麼f i j max 1,否則f i j f i 1 j 我們再記乙個g i j 表示f i j 是從 轉移過來的,記上面那個k即可 ...

Jzoj5424 鳳凰院兇真

給你兩個序列a和b,求出他們的最長公共上公升子串行並輸出方案 動態規劃,我們假設f i j 表示a處理到第i位,b處理到第j位時的長度 那麼顯然,若a i b j 那麼f i j max 1,否則f i j f i 1 j 我們再記乙個g i j 表示f i j 是從 轉移過來的,記上面那個k即可 ...

CSP模擬賽 方程(數學)

題目描述 求關於x的方程 x1 x2 xk n的非負整數解的個數。輸入格式 僅一行,包含兩個正整數n,k。輸出格式 乙個整數,表示方程不同解的個數,這個數可能很大,你只需輸出mod 20080814 的結果。輸入樣例 1 1輸出樣例1提示 資料範圍 對於50 的資料,n,k 300 對於80 的資料...