哈理工OJ—1598【DP最长公共子序列O(nlogn)】
生活随笔
收集整理的這篇文章主要介紹了
哈理工OJ—1598【DP最长公共子序列O(nlogn)】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
哈理工1598-序列問題III
Description
有倆個長度分別為p和q的序列A和B,每個序列的各個元素互不相同,且每個元素的大小都是1~(p和q中的最大值)之間的正整數。
倆個序列的第一個元素都為1,求出A和B的最長公共子序列長度。
Input
輸入第一行為數據組數T(T<=20)。每組數據包括3行,第一行為2個整數p和q(1<=p,q<=10000),
第二行包含序列A,其中第一個數為1。
第三行包含序列B,格式同序列A。
Output
對于每組數據,輸出A和B的最長公共子序列的長度。
Sample Input
2
3 2
1 2 3
1 2
7 8
1 7 5 4 8 3 2
1 4 3 5 6 2 8 7
Sample Output
2
4
Hint
對于第二組數據最長公共子序列為1,4,3,2。
!!!
> map<int,int >pos; > int pos=lower_bound(f+1,f+c,t)-f; > 二分法找到比t大的第一個位置最大公共子序列:找對應的最長上升子序列的個數
MLE
總結
以上是生活随笔為你收集整理的哈理工OJ—1598【DP最长公共子序列O(nlogn)】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反编译 - ILSpy的使用方法(看Un
- 下一篇: 关于多线程之GCD的一些学习要点