#1394. [CZOJ 一周一测 R27 D] 水果天堂
[CZOJ 一周一测 R27 D] 水果天堂
水果之宴,天堂欢仙。
Description
「水果天堂」有三个场景,色调分别为蓝色、绿色、红色。
小玖想找找这些场景之间的相似程度。她首先找到了三个场景可以映射到的序列 (长度依次为 ),并且他们会遵循一定规律生成(见输入格式)。
小玖只要找到 的最长公共子序列就好了。请你帮帮她。
Format
Input
一行输入五个正整数 。
然后根据下列参考代码,调用 init()
即可生成数据。
#define N 1000005
unsigned int seed;
int n,m,k,V,a[N],b[N],c[N];
int rnd()
{
seed^=seed<<13;
seed^=seed>>7;
seed^=seed<<17;
seed^=seed>>5;
seed^=seed<<11;
seed%=V;
return seed;
}
void init()
{
for(int i=1;i<=n;i++) a[i]=rnd();
for(int i=1;i<=m;i++) b[i]=rnd();
for(int i=1;i<=k;i++) c[i]=rnd();
}
Output
一行一个正整数,表示 ,即 的最长公共子序列长度。
Samples
10 10 10 100 114514
0
1000 1000 1000 114514 1919810
456
Explanation
对于样例 ,生成的序列如下:
$$\begin{aligned} a&=\{13,31,1,35,60,57,94,4,16,76\}\\ b&=\{30,38,51,52,49,66,64,10,18,54\}\\ c&=\{71,3,89,45,90,80,42,27,73,65\} \end{aligned} $$Limitation
对于 的数据,。
对于 的数据,。
对于 的数据,$1\le n,m,k\le 10^6,1\le V\le2\times10^6,0\le\text{seed}<2^{32}$。