一看到LCS 我就以为是动态规划,但是当我看到You can arrange elements in a andb in any order,彻底崩溃,原来只需要找到他们相同的元素即可……
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define maxnum 105
int a[maxnum],b[maxnum];
int n,m;
bool cmp(int a,int b)
{
return a<b;
}
int main()
{
int i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<m;i++)
scanf("%d",&b[i]);
sort(a,a+n,cmp);
sort(b,b+m,cmp);
int sum=0;
i=0;
j=0;
while(i<n&&j<m)
{
if(a[i]==b[j])
{
sum++;
i++;
j++;
}else if(a[i]>b[j])
j++;
else if(a[i]<b[j])
i++;
}
printf("%d\n",sum);
}
return 0;
}