模板 最長公共子串行

2021-08-22 18:09:09 字數 509 閱讀 6938

以洛谷p1439為例

n可以開到1e5……tle+mle(編譯都過不了)

讀入a陣列後雜湊一波,然後將b陣列的值在雜湊陣列裡找到對應值並替換,於是變成了求b陣列最長上公升子串行(玄學……)可以使用二分,時間複雜度o(nlogn)ac

#include

#include

#include

#include

using

namespace

std;

const

int n=1e5+5;

int a[n],f[n],b[n],len[n];

int read()

return x;

}int main()

for(i=1;i<=n;i++)

for(i=1;i<=n;i++)

len[l]=b[i];}}

printf("%d",k);

return

0;}

模板 最長公共子串行

題源 問題能轉化成二分求最長上公升子串行 lower bound 返回第乙個大於等於查詢值的位置 lower bound 返回第乙個小於查詢值的位置 binary search 返回判斷查詢值在不在的 bool 值 include define numm ch 48 define pd putcha...

模板 最長公共子串行

洛谷p1436 模板 我們定義對映f ai i,那麼兩個排列可以轉換為 f a1 f a2 f an 1,2,n 和 f b1 f b2 f bn 我們進行這樣的轉換之後,就把本題轉換為求最長上公升子串行的長度的題目了。最長上公升子串行存在o n log n 時間複雜度的演算法,概述如下 考慮兩個數...

luogu 模板 最長公共子串行

給出1 n的兩個排列p1和p2,求它們的最長公共子串行。輸入格式 第一行是乙個數n,接下來兩行,每行為n個數,為自然數1 n的乙個排列。輸出格式 乙個數,即最長公共子串行的長度 普通求最長公共子串行的dp i j 的方法肯定不行 但這裡每個元素的值都是確定的了.以f i 表示i長度為i的最長公共子串...