• 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 }
  • 相关阅读:
    每天更新股票日数据
    爬取赶集网类似数据的几个小技巧
    爬取赶集网二手物品下所有物品的信息
    web.xml常用元素
    web.xml中JSP配置及 EL表达式
    JSP 隐藏对象
    第四章 JSP语法
    1.JSP 简介及工作原理
    js闭包
    面试心经之题目二
  • 原文地址:https://www.cnblogs.com/khbcsu/p/3890388.html
Copyright © 2020-2023  润新知