首页 > 其他分享 >Codeforces Round #743 (Div. 2) B. Swaps(思维)

Codeforces Round #743 (Div. 2) B. Swaps(思维)

时间:2022-08-21 17:44:15浏览次数:94  
标签:sort 743 Swaps int Codeforces cin mp 数组

https://codeforces.com/contest/1573/problem/B

给定两个长度为n的数组,数组a和数组b
数组a包含从1到2*n的任意顺序的奇数,数组b包含从1到2*n的任意偶数

可执行的操作如下:

从两个数组中选择一个,从1到n-1中选择一个索引
交换第i和第i+1个元素
计算使得数组a在字典序上小于数组b的所需要的最少的移动次数。

input
3
2
3 1
4 2
3
5 3 1
2 4 6
5
7 5 9 1 3
2 4 6 10 8
output
0
2
3

  • 从数组a的小个数依从往右边取,合成minn
  • 与此同时,数组b也需要达到首位数字大于数组a的首位数字的效果
  • 就可以在从左往右中同步取最终最小的移动代价
#include<bits/stdc++.h>
using namespace std;
const int N=200200,M=2002;
int a[N],b[N];
int main()
{
    cin.tie(0); ios::sync_with_stdio(false);
    int T=1;
    cin>>T;
    while(T--)
    {
        int n;
        cin>>n;
        map<int,int> mp;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            mp[a[i]]=i;
        }
        for(int i=1;i<=n;i++)
        {
            cin>>b[i];
            mp[b[i]]=i;
        }
        sort(a+1,a+1+n);
        sort(b+1,b+1+n);
        //for(int i=1;i<=n;i++) cout<<a[i]<<" "; cout<<endl;
        // for(int i=1;i<=n;i++) cout<<b[i]<<" "; cout<<endl;
        int minn=1e9,ans=1e9;
        for(int i=1;i<=n;i++)
        {
            minn=min(minn,mp[a[i]]);
            ans=min(ans,minn+mp[b[i]]-2);
            //cout<<minn<<" "<<ans<<endl;
        }
        cout<<ans<<endl;
    }
    return 0;
}

标签:sort,743,Swaps,int,Codeforces,cin,mp,数组
From: https://www.cnblogs.com/Vivian-0918/p/16610422.html

相关文章

  • Codeforces 1715E - Long Way Home
    又是废掉的一个div2啊第一次在学校熬夜打cf,开心还看到了自己最喜欢的斜率优化ohhh链接:E-LongWayHome看到那个平方就可以靠感觉认为是斜率优化了....感觉似不似......
  • Codeforces Round #816 (Div. 2)
    题面A.Crossmarket不妨设\(n\gem\),则答案为\(n+2(m-1)\)。特别地,\(n=1,m=1\)时答案为\(0\),注意特判。ViewCode#include<stdio.h>#include<algorithm>int......
  • [Codeforces Round #816 (Div. 2)] D. 2+ doors
    这次Div.2比之前我打的有些要难啊,前三道题就耗了好多时间,D题干脆摆烂了。。。还是太逊了对于一个\(x\),有\(x|y_i=z_i\),那么我们设\(num[x]=z_1\)&\(z_2\)&\(z_3\)..........
  • 【长期】板刷Codeforces 1500-1700 的构造题
    【长期】板刷Codeforces1500-1700的构造题https://codeforces.com/problemset/page/1?tags=constructive+algorithms%2C1500-1700&order=BY_RATING_ASC每天三道,记录一......
  • Codeforces 1720 D, E
    D1设\(dp(i)\)表示考虑前i个数的最长子序列。枚举\(j\),从\(dp(j)+1\)转移到\(dp(i)\),转移条件就是题中给的那个不等式。发现\(i-j\)不能超过\(300\),暴力枚举即可。时间......
  • [题解] Codeforces 1720 E Misha and Paintings 结论
    算是诈骗题?令一开始就存在的颜色数为cnt。k>=cnt的情况,显然每次找一个出现不止一次的颜色,然后把这个颜色的恰好一个方块替换成一种没有出现过的颜色就可以了,\(k-cnt\)次解......
  • codeforces963D. Frequency of String【哈希】
    我的腿让我停下,可是我的心却不许我这么做今天又是为了明知多半不可能的事情奔波一早,一天里,出了很多丑,犯了很多错,见了很多人,有了很多意想不到的收获,我选择了我的生存方式......
  • Codeforces Round #815 (Div. 2) 题解
    CF1720A.BurenkaPlayswithFractions给出两个分数$\dfrac{a}{b}$和\(\dfrac{c}{d}\),你每次操作能够选择其中一个分数的分子或分母,将其乘上任意一个整数(当然不能......
  • Codeforces 杂题集
    本文主要把近期\(CF-Div.2\)的\(A,B,C,D\)题进行做Round815A题意给你两个分数\(\frac{a}{b},\frac{c}{d}\),问你最少几次使两个分数相等。Solution首先考虑,最......
  • Codeforces Round #815 (Div. 2) D2 Xor-Subsequence (hard version)
    原题链接\(A>B\),总是有二进制下从高到低的前\(k\)位相等,第\(k+1\)位\(A\)是\(1\),\(B\)是\(0\)本题中\(A=a_i\oplusj\),\(B=a_j\oplusi\),这里有一个很奇妙的性质(手玩或者......