题目传送门

 1 /*
 2     题意:给了两行的数字,相同的数字连线,问中间交点的个数
 3     逆序数:第一行保存每个数字的位置,第二行保存该数字在第一行的位置,接下来就是对它求逆序数
 4         用归并排序或线段树求。想到了就简单了:)
 5 */
 6 #include <cstdio>
 7 #include <algorithm>
 8 #include <cstring>
 9 #include <cmath>
10 #include <vector>
11 using namespace std;
12
13 typedef long long ll;
14 const int MAXN = 1e5 + 10;
15 const int INF = 0x3f3f3f3f;
16 int p[MAXN], a[MAXN];
17 int L[MAXN/2+10], R[MAXN/2+10];
18 ll ans;
19
20 void Merge(int *a, int p, int q, int r)
21 {
22     int n1 = q - p + 1, n2 = r - q;
23     for (int i=1; i<=n1; ++i)    L[i] = a[p+i-1];
24     for (int i=1; i<=n2; ++i)    R[i] = a[q+i];
25     L[n1+1] = INF;    R[n2+1] = INF;
26
27     int i = 1, j = 1;
28     for (int k=p; k<=r; ++k)
29     {
30         if (L[i] <= R[j])    a[k] = L[i++];
31         else    {a[k] = R[j++];    ans += n1 - i + 1;}
32     }
33 }
34
35 void MergeSort(int *a, int p, int r)
36 {
37     if (p < r)
38     {
39         int q = (p + r) / 2;
40         MergeSort (a, p, q);
41         MergeSort (a, q + 1, r);
42         Merge (a, p, q, r);
43     }
44 }
45
46 int main(void)        //UVALive 6508 Permutation Graphs
47 {
48 //    freopen ("I.in", "r", stdin);
49
50     int t;    scanf ("%d", &t);
51     while (t--)
52     {
53         int n;    scanf ("%d", &n);
54         for (int i=1; i<=n; ++i)
55         {
56             int x;    scanf ("%d", &x);    p[x] = i;
57         }
58         for (int i=1; i<=n; ++i)
59         {
60             int x;    scanf ("%d", &x);    a[i] = p[x];
61         }
62
63         ans = 0;
64         MergeSort (a, 1, n);
65         printf ("%lld\n", ans);
66     }
67
68     return 0;
69 }

转载于:https://www.cnblogs.com/Running-Time/p/4597813.html

逆序数 UVALive 6508 Permutation Graphs相关推荐

  1. UVALive 6508 Permutation Graphs

    Permutation Graphs Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. ...

  2. 逆序数2 HDOJ 1394 Minimum Inversion Number

    题目传送门 1 /* 2 求逆序数的四种方法 3 */ 1 /* 2 1. O(n^2) 暴力+递推 法:如果求出第一种情况的逆序列,其他的可以通过递推来搞出来,一开始是t[1],t[2],t[3]. ...

  3. Codeforces Gym 100463A Crossings 逆序数

    Crossings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463 Description ...

  4. HDU 5775 Bubble Sort(归并排序+逆序数)

    题目链接:HDU 5775 Bubble Sort                                                                           ...

  5. 剑指 offer set 22 数组中的逆序数

    总结 1. 题目为归并排序的变形, 不过我完全没想到 2. 在归并排序进行字符组 merge 时, 统计逆序数. merge 后, 两个子数组是有序的了, 下次再 merge 的时候就能以 o(n) ...

  6. 二叉树:二叉搜索树实现 逆序数问题

    关于逆序数的问题描述如下: 已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], cou ...

  7. 递归/归并:count of smaller numbers求逆序数

    已知数组nums,求新数组count,count[i]代表了在nums[i]右侧且比 nums[i]小的元素个数. 例如: nums = [5, 2, 6, 1], count = [2, 1, 1, ...

  8. 求排列的逆序数(分治)

    考虑1,2,-,n (n <= 100000)的排列i1,i2,-,in,如果其中存在j,k,满足 j < k 且 ij > ik, 那么就称(ij,ik)是这个排列的一个逆序. 一 ...

  9. 算法笔记-归并算法面试题、逆序数问题

    1. 题目 逆序对问题:在一个数组中,左边的数如果比右边大,则这两个数构成一个逆序对,请打印所有逆序对 比如说: 数组: 5, 1, 3,4,2 第一个元素是5,其右边有小于5的数,即1,3,4,2, ...

最新文章

  1. C++知识点52——多重继承
  2. Vitamio打造自己的Android万能播放器
  3. 【错误记录】360 加固后的运行错误 ( 加固 SO 动态库时不能对第三方动态库进行加固 )
  4. 论文笔记:Integrating Classification and Association Rule Mining (即,CBA算法介绍)
  5. jenkis编译报错:需要class,interface或enum
  6. 场景/故事/story——寻物者发布消息场景、寻失主发布消息场景、消息展示场景、登录网站场景...
  7. 测试Live Writer 发表博客
  8. Android之invalid address or address of corrupt block 0xabb494a0 passed to dlfree崩溃解决办法
  9. 您应该考虑将应用程序升级到Spring 4的5个理由
  10. 最简单的jQuery程序
  11. Codeforces Round #354 (Div. 2) A. Nicholas and Permutation
  12. (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
  13. paip.提升性能----SQL优化总结
  14. mysql 删除表的方法_MySQL 删除表的三种方式
  15. 【VFB】复制VB代码(VB与FB的差异)(VFB教程3-6)
  16. LVGL|lvgl中文教程手册(lvgl中文文档学习教程)
  17. VB制作的“小小莫扎特五线谱助记软件”
  18. spyder 5.0.0 提示依赖项spyder-kernels版本错误
  19. 极客日报:微信自动抢红包软件被判赔 475 万;日本科学家打破网速全球纪录;JavaScript蝉联最受欢迎编程语言
  20. 如何对待新事物_以积极态度看待不断出现的新事物

热门文章

  1. 26Java中的多态
  2. python代码编写规范有哪些_Python代码编写规范(适合于小团体,低强度)
  3. Visual Studio 2015安装教程(附激活码)
  4. 光流 | 基于Matlab实现Lucas-Kanade方法:方法1(附源代码)
  5. Spin控件使用总结
  6. linux 改成utc时间_C++下四种常用的程序运行时间的计时方法总结
  7. 网络安全等保定级_网络安全防护专项检查迫在眉睫, 青莲帮您快速定级备案和评测...
  8. 香帅的北大金融学课笔记17 -- 公司治理
  9. 互联网内容平台到底要用到多少AI技术?
  10. 【深度学习】近几年,关于基于Imagenet数据集图像分类的模型总结