题目大意
给定N,M,问有多少不同的序列对(A,B)满足:
1. 长度均为N
2. 从A中删去0到2个元素,在B中删去相同数量的数,然后两个序列相同
3. 序列都是[1,M]内的整数
答案对 109+9 取模,N≤100,1≤M≤1000000000
分析
第2个条件相当于两个序列的最长公共子序列长度不小于n-2
首先考虑对于两个序列,如何求它们的最长公共子序列。
有一个很清晰的 n2 的方法:设f[i][j]表示A的前i个,B的前j个,求出最长公共子序列的长度。容易得到:
f[i][j]={
f