题意:找两个数组的最短子序列。
思路:要么没有,要么长度为一。只要判断两个数组有没有相同的元素即可。
代码:
#include <bits/stdc++.h>
using namespace std;
int t,n,m,a[1010],b[1010],c[1010],f;
int main()
{
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=1;i<=1000;i++)
c[i]=0;
for(int i=1; i<=n; i++)
{
cin>>a[i];
c[a[i]]=1;
}
f=0;
for(int i=1; i<=m; i++)
cin>>b[i];
for(int i=1; i<=m; i++)
{
if(c[b[i]])
{
f=i;
break;
}
}
if(f)
cout<<"YES"<<endl<<1<<' '<<b[f]<<endl;
else
cout<<"NO"<<endl;
}
}