难题·AlvinZH的青春记忆IV

时间限制: 1500 ms 内存限制: 204800 kb
总通过人数: 0 总提交人数: 0

题目描述

温馨提示:分割线之前描述为情怀内容,对解题无用

生命短暂犹若露珠消散/人们在奔波中探寻答案/运数仿佛大海起伏不定/掌上迷离脉纹回路漫漫/长剑在黑夜吟唱悲歌/岁月如斑驳铜镜经年/天际流火叩响大地之门/岁月星辰刻画沧桑年轮/纵横交错兮天下之局/谁能参悟兮世事如棋——张良

恐惧并不是弱点,强者,是要让你的敌人比你更恐惧。——盖聂

只有永远的利害冲突,无尽的生死抉择,这就是纵横。——卫庄

----------分割线----------

君临天下之际,沧海横流之时,桑海城内,暗流涌动。墨家众人与帝国高手狭路相逢,帝国忌惮纵横二人的超强战力,而墨家众人亦有伤在身,双方都不想挑起事端,一时之间桑海城刀光剑影,时现杀机。

调皮的天明偷偷记录了双方的人员,如大叔、二叔、白凤,还有月神、星魂、六剑奴等人,甚至对他们的战力进行了一番评估。现在天明得到了两串评估战力序列,一番奇思妙想,天明想知道如果这两串序列中对应位置的两人交战,会是怎样的场景呢?

天明并不想看所有的交战,他只想看势均力敌(评估战力相等)的对战,同时战力越高之间的对战一定会越精彩,天明想按战力从小到大的顺序“欣赏”对战。

天明才不想给两个序列排序呢!他以当前的战力序列不变,按相对顺序从双方选出战力相同的进行对战,再从交战的两人之后再选战力更高且相等的二人对战。

即:若 Ai==Bj,则 Ai 可与 Bj 交战,之后下一场 Aii、Bjj 交战的条件是:Aii==Bjj、ii>i、jj>j、Aii>Ai、Bjj>Bj 。

请问,调皮的天明最多可以看到多少局对战呢?

输入

输入包含多组数据。

每组数据第一行为两个正整数n、m,代表天明名单上双方的人数(1 ≤ n,m ≤ 10^4)。

接下来一行为n个正整数,代表墨家势力评估战力序列,[1,10^8]范围内。

接下来一行为m个正整数,代表帝国势力评估战力序列,[1,10^8]范围内。

输出

对于每组数据,输出一行,为天明可以看到的最大对战数。

输入样例

3 3
1 2 3
3 1 2
4 4
1 4 2 5
1 1 2 4

输出样例

2
2

样例解释

样例一:战力同为1一场,之后战力同为2一场。答案为2。

样例二:战力同为1一场,之后战力同为2或4一场。答案为2。

优化

注意:内存限制。long long是不可能的,int也是不可能的,AC是不可能的,除非你发现了$n$的范围并不大,dp数组需要使用比int更小的short int

另外,本题最优解法时间复杂度为 $O(n^2)$ ,空间复杂度为$O(n)$ 。

HINT

仅此纪念AlvinZH的青春——《秦时明月》

相关推荐