CSU - 2130 Permutations

news/2024/12/12 22:32:32/

周日 毫无准备地被拉去中南打了一次湖南多校现场赛

书包里装的是两本高数书hhh

四个多小时也就做了一题 

还是靠队友  (宋会长nb (逃~

Description

给定两个1~n的排列A, B。每次可以把A的最后一个数取出,插入到A的任何一个位置(最前面或者任何两个数中间)。 问最少几次可以把A转化为B。

Input

第一行为一个整数n。 第二行为1~n的一个排列,表示A。 第三行为1~n的一个排列,表示B。

Output

一个整数即最少操作次数。

Sample Input

5
1 5 2 3 4
1 2 3 4 5

Sample Output

3

Hint

30%:n <= 100
50%:n <= 1000
100%: n <= 200000



题意:

两个含有n个数的数组,将第一个数组进行多次变换,即将最后一个数放入前面任意一个位置,若干次操作后,得到第二行的数组。


理解:

因为最后的数可以放到其前面的任意位置,所以,关键在于两个数组相比第一个不同的数字。

例1:

5

1 5 3 2 4 

1 2 3 4 5

这是题目给出的样例,两数组间第一个不同数字是第二组数字,即表示 从第二组开始的数字都需要重新排列。

(答案为3)

例2:

5

2 3 4 5 1

1 2 3 4 5

这是我自己出的样例,特殊之处在于,只要将最后的 1 插入到数组的最前面就可以完成转化,即移动一次。

(答案为1)

例3:

5

3 4 1 2 5 

1 2 3 4 5

又给了一个我自己出的样例,将例2与例3结合起来看,可以发现:在第一组不同的数组之后 若之后的数据存在相对位置相同的情况时,要减去这几种情况。比如:例 2 的 2 3 4 5 以及例 2 的 3 4 

下面放一下队友的代码:

 

#include <cstdio>
#include <cstring>
using namespace std;const int SIZE = 2e5+10;
int a1[SIZE], a2[SIZE], a3[SIZE];
int main()
{int n, jl = 0, js = 0;memset(a1, 0, sizeof(a1));memset(a2, 0, sizeof(a2));memset(a3, 0, sizeof(a3));scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", a1+i);}for(int i = 1; i <= n; i++){scanf("%d", a2+i);a3[a2[i]] = i;}int j1, j2;for(int i = 1; i <= n; i++){if(a1[i] != a2[i]){j1 = i+1, j2 = a3[a1[i+1]];jl = i;break;}}if(j1 < j2){for(int i = j2; i <= n; i++){if(a1[j1] == a2[i]){j1++;js++;}}}printf("%d\n", n-jl-js);return 0;
}/**********************************************************************Problem: 1243User: multi2018team036Language: C++Result: ACTime:128 msMemory:3464 kb
**********************************************************************/


还好我们没放弃啊

最后终于A了一题...(在离比赛结束还有20分钟的时候)


无意间看到别人的博客  思想稍微有点不同

也想放一下:https://blog.csdn.net/Abandoninged/article/details/80560207



http://www.ppmy.cn/news/476926.html

相关文章

usg2130 虚拟服务器,USG2130防火墙透明模式,trust-dmz禁止所有流量,仍然可以互通...

1、USG2130防火墙透明模式,trust-dmz禁止所以流量,仍然可以互通 2、配置如下:(相关配置) firewall packet-filter default deny interzone trust dmz direction inbound firewall packet-filter default deny interzone trust dmz direction outbound # interface Ethernet1/0/…

【渝粤教育】国家开放大学2019年春季 2130药物治疗学 参考试题

试卷代号&#xff1a;2130 药物治疗学 试题 2019年7月 一、单项选择题&#xff08;每题2分&#xff0c;共30分&#xff09; 1.服药后&#xff0c;进入血液的药物呈现活性的状态是&#xff08; &#xff09; A.游离状态 B.络合状态 C.吸附状态 D.复合体状态 2.1例肺炎患者在使用…

虚拟现实处理器(SXR2130P)ISO7640FMDW(数字隔离器)说明

说明 ISO7640F为四通道隔离器;ISO7640F有四个正向通道&#xff0c;后缀F表示故障安全情况下输出默认为低电平状态。M级器件为高速隔离器&#xff0c;具有150Mbps的数据传输速率和短暂传播延迟。 每个隔离通道都有一个由二氧化硅(SiO2)绝缘隔栅分开的逻辑输入和输出缓冲器。与隔…

usg2130 虚拟服务器,usg2130防火墙怎么样设置

usg2130防火墙安装了&#xff0c;但是你会设置吗?小编来教你!下面由学习啦小编给你做出详细的usg2130防火墙设置方法介绍!希望对你有帮助! usg2130防火墙设置方法一&#xff1a; 1、新建两个VLAN 2、分别将LAN0 与 LAN 1 分别加入不同的VLAN 3、为两个VLAN新建三层接口。 4、将…

关于TMC2130的控制方法

首先我被TMC2130折磨了一天&#xff0c;然后我懂了&#xff0c;现在我来发怎么使用&#xff0c;不足请大佬指正 本文章是基于正点原子的F407探索者例程 以及使用了csdn大佬的一些代码&#xff0c;出处&#xff1a;(34条消息) 基于STM32实现TMC5160实现简单转动&#xff08;SP…

cordova@12 更新内容

参考Cordova官方版本日志 cordova12.0.0 更新内容 cordova-android12.0.0 更新内容 cordova-ios6.3.0 更新内容 1. Cordova12 更新内容 1.1 cordova12.0.0 1.1.1 Internal libraries 使用最新的内部依赖&#xff1a; cordova-lib12.0.1 cordova-create5.0.0 cordova-comm…

怎样做出优秀的扁平化设计风格 PPT 或 Keynote 幻灯片演示文稿?(装)

不知道你有没有想过,为什么很人多的扁平化 PPT 是这个样子: 或者是这样:

Android 开源组件和第三方库汇总

出自&#xff08;https://github.com/Tim9Liu9/TimLiu-[Android](http://lib.csdn.net/base/andro id)&#xff09; TimLiu-Android 自己总结的Android开源项目及库。 1、 github排名 https://github.com/trending,github搜索&#xff1a;https://github.com/search 2、htt…