ZOJ 3019

         一看到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;
}

你可能感兴趣的:(ZOJ 3019)