分析:

大佬们也有搞错的时候,说把s重排一下,求逆序数对就行了; 这个是相邻两两交换;

正解:

是将所有没有在正确位置的数,他们一次性到达他正确的位置,没有浪费;

 1 #include <bits/stdc++.h>
 2
 3 using namespace std;
 4
 5 const int maxn = 200000 + 5;
 6 int a[maxn];
 7 int b[maxn];
 8 bool vis[maxn];
 9
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14
15     memset(vis,0,sizeof(vis));
16
17     for(int i=0;i<n;i++)
18         scanf("%d",&a[i]);
19
20     for(int i=0;i<n;i++) {
21         int tmp;
22         scanf("%d",&tmp);
23         b[tmp] = i;
24     }
25
26     for(int i=0;i<n;i++) {
27         a[i] = b[a[i]];
28     }
29
30     long long ans = 0;
31     for(int i=0;i<n;i++) {
32         if(vis[i])
33             continue;
34         long long sum = 0;
35
36         for(int j=i;!vis[j];j=a[j]) {
37             sum +=(abs(j-a[j]));
38             vis[j] = 1;
39         }
40         ans +=(sum)/2;
41     }
42
43     printf("%lld\n",ans);
44
45     return 0;
46 }

View Code

转载于:https://www.cnblogs.com/TreeDream/p/6910517.html

51nod 1574 排列转换相关推荐

  1. 51nod 1574: 排列转换

    1574 排列转换 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 现在有两个长度为n的排列p和s.要求通过交换使 ...

  2. 51nod 1574 排列转换 codeforce584E. Anton and Ira

    文章目录 题目链接: 题目链接: 51nod 1574 cf584E 先转换一哈题意,就是乱序的排列,把他变成有序的,交换两个数的代价是两个数下标的绝对值,问最小的代价 我就按顺序来,从小到大依次把每 ...

  3. 51nod1574排列转换

    1574 排列转换 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 现在有两个长度为n的排列p和s.要求通过交换使 ...

  4. 51nod 1574 || Codeforces 584 E. Anton and Ira 思维+构造+贪心

    传送门:E. Anton and Ira 题意:给定两个1-n的全排列p和s,假设交换pi和pj的代价是abs(i-j),问怎样将p交换成s才能使代价最小. 思路:先将s映射成1-n的顺序排列,再将p ...

  5. 51nod 1250 排列与交换——dp

    题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1250 仔细思考dp. 第一问,考虑已知 i-1 个数有多少种方案. ...

  6. 51nod 1843 排列合并机【DP去重】Ender的模拟赛

    题目描述 有两个1~n的排列A,B,序列C一开始为空,每次可以选择进行以下两种操作之一 1)若A不为空,则可取出A的开头元素放在序列C的末尾 2)若B不为空,则可取出B的开头元素放在序列C的末尾 这样 ...

  7. Matlab 基础01 - 多维数组的排列转换和Permute 函数

    前言: 本章通过Matlab官网的例子,介绍Matlab Permute函数的数组维度置换功能:由于官网的说明比较晦涩难懂,所以,这里用自己的语言和理解重新组织了一下. 1 语法: B = permu ...

  8. php转mp3的工厂,魔影工厂怎么转成mp3 魔影工厂转换mp3教程

    魔影工厂支持多种格式的转换,比较常见的有MP3的转换,不过对于这个操作有些新手不是很熟悉.魔影工厂怎么转成mp3?小编带来了魔影工厂转换mp3教程,马上来了解下吧! 类别:视频处理   大小:20.4 ...

  9. 【进制转换】— 包含整数和小数部分转换(二进制、八进制、十进制、十六进制)手写版,超详细

    目录 1.进制转换必备知识: 1.1 二进制逢2进1         8进制逢8进1           10进制逢10进1        16进制逢16进1 1.2为了区分二.八.十.十六进制,我们 ...

最新文章

  1. 网上的python教程值不值得买_Python新人入手线程技术教程,值得收藏
  2. Oracle 11g 客户端使用
  3. C# 设计开发模式 -观察者模式
  4. openstack-networking-neutron(一)---端到端和点到点的理解
  5. c语言 艺术编程,C语言编程艺术--条件编译(原创)
  6. c语言字符串截取_笔记 | 自学Python 05:数据类型之字符串
  7. 通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (
  8. SpringBoot使用@Scheduled创建定时任务
  9. 学生成绩查询html,中学生成绩查询用的一个网站叫什么行
  10. android点击不同次切换不同图片,Android实现简单的上一张、下一张图片切换显示...
  11. 设备日常检查(巡检)
  12. Java基础系列:switch+enum
  13. 金纳米颗粒上装载DNA四面体|金核(75-100nm左右)sio2壳层(3-5nm)产品描述/信息/详情
  14. POI实现EXCEL单元格合并及边框样式
  15. Prim 算法的实现
  16. 章节十四:Scrapy框架
  17. SQL99中的natural join 和 using
  18. 【转】一个拿到人人网和淘宝网offer的大四学生的Android学习经历
  19. 程序放在linux哪个目录,linux下装的程序应该放到哪个目录下
  20. 数据通信基础 - 信道特性(奈奎斯特定理、香农定理 )

热门文章

  1. C#中转义字符[转]
  2. 理解Node.js(译文)
  3. Ubuntu 下安装adobe flash player
  4. 小东《迷路的情人》MV
  5. webpack最简单的入门教程里bundle.js之运行单步调试的原理解析
  6. oracle sum(col1) over(partition by col2 order by col3):实现分组递增汇总
  7. 创业初期,处理好事情的优先级
  8. gcc-5.4.0 static dwarf2 compile
  9. django之创建第6-1个项目-自定义过滤器
  10. 算法与数据结构之队列的链式存储