不知道哪來的題 Subsequence

2022-05-19 04:49:52 字數 990 閱讀 6028

給出兩個由小於等於 \(k\) 的正整數構成的數列 \(a\) 與 \(b\) ,長度為 \(n\) 與 \(m\) 。

現在需要乙個由小於等於 \(k\) 的正整數構成的數列 \(c\) ,使得 \(c\) 既不是 \(a\) 的子串行,也不是 \(b\)

的子串行。

請求出 \(c\) 的最小長度。

\(n,m,k\le 4000\)

\(dp[i][j]\) 表示 \(a\) 掃到 \(i\) , \(b\) 掃到 \(j\) , \(c\) 的最小長度。

預處理一下下乙個與當前位置值相同的位置就好了。

#includeusing namespace std;

template inline void read(t &x)

#define n 4010

#define rep(i, a, b) for (int i = a; i <= b; i++)

#define drp(i, a, b) for (int i = a; i >= b; i--)

int n, m, k, a[n], b[n], dp[n][n], f1[n][n], f2[n][n], ans;

inline void upd(int& x, int y)

int main()

drp(i, m, 1)

dp[0][0] = 1, ans = min(n, m) + 1;

rep(i, 0, n) rep(j, 0, m) if (a[i] == b[j] && dp[i][j]) rep(k, 1, k)

if (!f1[i + 1][k] && !f2[j + 1][k]) ans = min(ans, dp[i][j]);

else upd(dp[f1[i + 1][k]][f2[j + 1][k]], dp[i][j] + 1);

printf("%d", ans);

return 0;

}

不知道哪來的題 完美理論

兩棵點集相同的樹,每個點有乙個權值 a i a i le 1000 編號 1 n n le 100 找到乙個點集的子集使得這個子集在兩棵樹上都是連通塊。輸出最大的權值和。多組資料,t le 50 考慮列舉兩棵樹的根 root 則對於任意乙個點,選了它就必須選它的父親。這就是乙個最大權閉合圖的模型了。...

不知道不知道

函式分析 希爾伯特 哥德爾不完備定理 哥德爾不完全性定理一舉粉碎了數學家兩千年來的信念。他告訴我們,真與可證是兩個概念。可證的一定是真的,但真的不一定可證。某種意義上,悖論的陰影將永遠伴隨著我們。無怪乎大數學家外爾發出這樣的感嘆 上帝是存在的,因為數學無疑是相容的 魔鬼也是存在的,因為我們不能證明這...

不知道不知道

函式分析 希爾伯特 哥德爾不完備定理 哥德爾不完全性定理一舉粉碎了數學家兩千年來的信念。他告訴我們,真與可證是兩個概念。可證的一定是真的,但真的不一定可證。某種意義上,悖論的陰影將永遠伴隨著我們。無怪乎大數學家外爾發出這樣的感嘆 上帝是存在的,因為數學無疑是相容的 魔鬼也是存在的,因為我們不能證明這...