(一)思路:
由题知:我们可以知道q的值是要小于n的,这样才成立,那么就以两层循环来做,外面循环次数为q-1次,里面循环次数为n,执行完后再执行n次(这一步我是为了换行)。掌握移动元素方法。
(二)代码:
#include<iostream> #include<cstdio> using namespace std; int main() { long long n,q; cin>>n; cin>>q; long long a[n],b[q]; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=q;i++) { cin>>b[i]; } for(int i=1;i<=q-1;i++) { int t; int c=0; for(int j=1;j<=n;j++) { if(b[i]==a[j]) { cout<<j<<" "; t=j; c=a[j]; break; } } for(int w=t;w>1;w--) { a[w]=a[w-1]; } a[1]=c; } for(int j=1;j<=n;j++) { if(b[q]==a[j]) { int t; cout<<j<<endl; break; } } return 0; }