首页 > 代码库 > codeforces 187A
codeforces 187A
【题意描述】
给定两个有n个整数构成的序列,我们每次可以移动第一个序列的最后一个数,并可以把该数插在第一位或者中间某一个位置。求通过最少的步骤数使得第一个序列与第二个序列相同。
【解题思路】
本题采用贪心的思想。我们可以从第一个开始找,寻找不需要处理的序列数,然后用总长度减去不需要处理的数目即是答案。
【AC代码】
1 #include <iostream> 2 #include <cstring> 3 4 #define maxn 200000+10 5 6 using namespace std; 7 8 int n; 9 int a[maxn],b[maxn];10 int visit[maxn];11 int main (){12 while (cin>>n){13 int flag,temp;14 int ans=maxn;15 memset (visit,0,sizeof visit);16 for (int i=0;i<n;i++){17 cin>>a[i];18 }19 a[n]=0;20 for (int i=0;i<n;i++){21 cin>>b[i];22 }23 int j=0;24 ans=0;25 26 27 28 //求不用处理的元素个数29 for (int i=0;i<n;i++){30 if (a[j]!=b[i])31 continue ;32 j++;33 ans++;34 }35 cout<<n-ans<<endl;36 }37 return 0;38 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。