xkm0606 @ 2024-12-20 21:16:34
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long a,sum=0;
cin>>a;
long long b[a],r;
for(int i=1;i<=a;i++)
{
cin>>b[i];
}
for(int k=1;k<=a;k++)
{
cin>>r;
if(r==b[k])
{
sum++;
}
}
cout<<sum;
}
为啥就十分啊?
分数
by YBJ1006 @ 2024-12-20 21:17:20
错的啊
by xkm0606 @ 2024-12-20 21:20:44
@YBJ1006 哪错了呀?
by MoLing_111 @ 2024-12-20 21:21:03
emmmmmmmmmmmm,这能拿10分建议加强数据,建议去搜一下最长公共子序列的意思,这是一道DP板子题。
百度:最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列 ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。
by xkm0606 @ 2024-12-20 21:23:23
@MoLing_111
最长公共子序列(Longest Common Subsequence,简称LCS)是计算机科学和数学中的一个重要概念。它指的是在两个给定序列中,按顺序出现但不必连续的最长子序列。换句话说,LCS是这两个序列的共同部分,且保持它们原有的排列顺序。
例如,对于序列A = [1, 3, 4, 1, 2, 3, 5]和序列B = [3, 4, 1, 2, 1, 3, 5, 6],它们的最长公共子序列是[3, 4, 1, 2, 3, 5],长度为6。
LCS问题广泛应用于生物信息学(如DNA序列比对)、文本比较、版本控制等领域。解决LCS问题的经典算法是动态规划,通过构建一个二维表格来记录子问题的解,从而高效地找到最长公共子序列。
搜过ai了!
by YBJ1006 @ 2024-12-20 21:25:17
正解是二分DP 子序列可以错位出现 你应该只考虑了在同一位上的相等
by Infinity_Fantasy @ 2024-12-20 21:25:58
陆陆陆
by xkm0606 @ 2024-12-20 21:28:08
@YBJ1006
哦!懂了懂了
by YBJ1006 @ 2024-12-20 21:29:41
@xkm0606 你可以先试试朴素的DP 会超时
by xkm0606 @ 2024-12-20 21:31:56
@YBJ1006
我萌新,不会呀
by YBJ1006 @ 2024-12-20 21:33:05
那先学一下DP吧