### 问题描述
- 给你两个数组,a数组里面是1 - 2n中的奇数任意顺序排列组成,b数组里面是1 - 2n中的奇数任意顺序排列组成。
- 问你最少需要多少次操作能让a的字典序小于b。
### 思路分析
- 首先我们要明确两个数组中的元素肯定不同,那么能造成两个数组的字典序大小的就只有两个数组第一个数的大小关系。所以我们只考虑第一个位置即可。
- 那么如何来求最少?我们可以想到的是如果把a,b数组全部都排序,最后得到的b数组中的每一个元素都会大于a数组中该位置及以前位置的元素。
- 另外,对于2,4,6...我们只需要考虑比它小的数在a数组中的位置即可(例如2看1,4看1,3,6看1,3,5)。
- 所以我们就可以用一个变量来储存每一个小于b当前位置的a所在位置下标的最小值,这样我们跑一遍b数组就可以得到答案,答案就是那个最小位置的下标加上当前遍历到的b数组中的元素下标相加减2即可。
### 代码如下
~~~cpp
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int pos[maxn * 2];
int a[maxn];
int b[maxn];
int main()
{
        ios::sync_with_stdio(0);
        cin.tie(0);
        cout.tie(0);
        int t;
        cin >> t;
        while (t--)
        {
                int n;
                cin >> n;
                for (int i = 1; i <= n; i++)
                {
                        cin >> a[i];
                        pos[a[i]] = i;
                }
                for (int i = 1; i <= n; i++)
                {
                        cin >> b[i];
                        pos[b[i]] = i;
                }
                sort(a + 1, a + 1 + n);
                sort(b + 1, b + 1 + n);
                int mini = n;
                int ans = 2 * n;
                for (int i = 1; i <= n; i++)
                {
                        mini = min(mini, pos[a[i]]);
                        ans = min(ans, pos[b[i]] + mini - 2);
                }
                cout << ans << endl;
        }
        return 0;
}
~~~

Codeforces1573B的更多相关文章

随机推荐

  1. Django的form组件——正则校验

    from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...

  2. Python - 文件模式a+读取不了文件

    代码 f = open('test/gbk.txt', 'a+', encoding='utf-8') print(f.readline()) 最终的执行结果是输出空,为什么呢? a+模式打开文件指针 ...

  3. Identity角色管理四(删除角色)

    角色删除方法 [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Delete(string id) ...

  4. python关键字--yield

    彻底理解Python中的yield

  5. (5)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Boot简介

    ​Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置 ...

  6. java.net.NoRouteToHostException: 无法指定被请求的地址

    今天压力测试时, 刚开始出现了很多异常, 都是 java.net.NoRouteToHostException: Cannot assign requested address.  经网上查资料, 是 ...

  7. 深度探索-Redis复制

    1.前言 本文介绍了Redis复制的主要流程和设计思想.通过本文的阅读,您大致能理解复制在软件架构方面的通用思想.在阅读本文之前,希望读者首先对Redis有一定的认识,对Redis的事件类型.和事件处 ...

  8. KMP算法解决字符串匹配问题

    要解决的问题 假设字符串str长度为N,字符串match长度为M,M <= N, 想确定str中是否有某个子串是等于match的.返回和match匹配的字符串的首字母在str的位置,如果不匹配, ...

  9. TP5 pc和wap跳转404

    在config.php中配置 // HttpException异常 'http_exception_template' => [ // 定义404错误的重定向页面地址 404 => isW ...

  10. ECShop 文章添加缩略图功能

    为 ECShop 文章添加缩略图     ECShop 文章不包含缩略图比较遗憾,不过它的文章里包含一个附件上传,而且一般不会用到,这样,我们就可以改动一下,让它成为缩略图. 首先在 includes ...