汗,一开始把mililion认为是1亿。结果连数组都不敢开。 水题。算是队列的应用吧。 #include <iostream> using namespace std; int a[1000010]; int b[1000010]; int main() { int n,m,fa,fb,i,cnt; while(scanf("%d%d",&n,&m)&&(n||m)) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<m;i++) scanf("%d",&b[i]); fa=fb=cnt=0; while(fa<n&&fb<m) { if(a[fa]==b[fb]) { fa++; fb++; cnt++; } else if(a[fa]<b[fb]) fa++; else fb++; } printf("%d/n",cnt); } return 0; }