#3905. 魔法连线探秘

魔法连线探秘

🐰😺🔗 兔猫信奥学院的魔法连线探秘 🔗😺🐰

在兔猫信奥学院的魔法画廊中,加菲老师展示了两条平行的能量链——上链记录着序列 nums1,下链记录着序列 nums2。传说,如果在两个能量点之间用魔法线相连,必须满足它们的能量值相同,且这些魔法线不能交叉——就像最完美的“通灵”连接。现在,小兔和小猫的任务是:在这两条能量链之间,最多能画出多少条不相交的魔法连线?


输入格式

第一行:整数 m,表示 nums1 的长度。
第二行:m 个整数 nums1[i],用空格分隔。
第三行:整数 n,表示 nums2 的长度。
第四行:n 个整数 nums2[j],用空格分隔。
  • 1m,n10001 \le m, n \le 1000
  • 1nums1[i],nums2[j]20001 \le \text{nums1}[i],\,\text{nums2}[j] \le 2000

输出格式

输出一个整数,表示可以画出的最大不相交连线数。

样例 1

3
1 4 2
3
1 2 4
2
  • 解释:
    最优连线为:
    nums1[0]=1 ─ nums2[0]=1  
    nums1[2]=2 ─ nums2[1]=2  
    
    共 2 条。

样例 2

5
2 5 1 2 5
6
10 5 2 1 5 2
3

样例 3

6
1 3 7 1 7 5
5
1 9 2 5 1
2

🎓 加菲老师寄语:
通过二维动态规划求最长公共子序列,你便能设计出最完美的魔法连线,不交叉、尽可能多。下次,我们将探索空间优化与“最长公共子串”等更深层算法,敬请期待!