#P5343. 【XR-1】分块

    ID: 4298 Type: RemoteJudge 1000ms 125MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>动态规划,dp动态规划优化矩阵加速,矩阵优化矩阵乘法

【XR-1】分块

题目背景

xht37 喜欢分块,以至于对一道不需要分块的题也要分块做。

题目描述

有一个长度为 nn 的序列,xht37 现在想分块维护它。

PinkRabbit 要求他只准将序列分成 PRPR 种长度的块。

NaCly_Fish 要求他只准将序列分成 NFNF 种长度的块。

同一个人可能会要求 xht37 多次相同的块长。

xht37 想同时满足 PinkRabbit 和 NaCly_Fish 要求,只好使用两个人都允许的长度分块。

xht37 想知道,有多少种不同的分块方案,答案对 109+710 ^ 9 + 7 取模。

输入格式

第一行一个正整数 nn,表示序列的长度。

第二行一个正整数 PRPR,表示 PinkRabbit 要求的分块长度的种类数。

第三行 PRPR 个正整数,表示 PinkRabbit 要求的 PRPR 种分块长度。

第四行一个正整数 NFNF,表示 NaCly_Fish 要求的分块长度的种类数。

第五行 NFNF 个正整数,表示 NaCly_Fish 要求的 NFNF 种分块长度。

输出格式

输出一行一个整数,表示不同分块方案的种类数对 109+710 ^ 9 + 7 取模的值。

4
3
1 2 3
3
1 2 4
5
19260817
7
8 9 6 3 7 2 1
7
4 5 2 9 7 8 3
859254329

提示

【样例 11 说明】

PinkRabbit 和 NaCly_Fish 都允许的块长为 {1,2}\{1,2\}

长度为 44 的序列分块,每块长度为 {1,2}\{1,2\} 的方案有:

  • 1 1 1 11\ 1\ 1\ 1
  • 1 1 21\ 1\ 2
  • 1 2 11\ 2\ 1
  • 2 1 12\ 1\ 1
  • 2 22\ 2

55 种。

【数据规模与约定】

设最大块长为 xx

对于 60%60 \% 的数据,1n1061 \le n \le 10 ^ 61PR,NF,x101 \le PR,NF,x \le 10,保证同一个人不会要求多次相同的块长。

对于 100%100 \% 的数据,1n10181 \le n \le 10 ^ {18}1PR,NF,x1001 \le PR,NF,x \le 100