蒟蒻语

这题是真的奇妙。。。

想了好久才想明白。

蒟蒻解

考虑冒泡排序是怎样的。

对于相邻的两个数 \(a_i, a_{i+1}\),如果 \(a_i>a_{i+1}\) 那么就交换两个数。

总交换次数为逆序对个数 (每次交换使得逆序对数量 \(-1\))

考虑交换的两个数。他们在原序列中也是一对逆序对。

如果把这些逆序队倒着做一遍那么就是从有序的的变成现在给出的序列。

只要把冒泡排序出的逆序对反着做一遍就好了

蒟蒻码

这东西随便打吧。。。

#include<bits/stdc++.h>
#define L(i, j, k) for(int i = j; i <= k; i++)
using namespace std;
const int N = 1123; // George1123 txdy!
int a[N], b[N], n, tot, stk[N * N][2];
int main() {
scanf("%d", &n);
L(i, 1, n) scanf("%d", &a[i]), b[i] = i;
L(i, 1, n) L(j, 1, n - 1) if(a[j] > a[j + 1]) swap(a[j], a[j + 1]), ++tot, stk[tot][0] = b[j], stk[tot][1] = b[j + 1], swap(b[j], b[j + 1]);
printf("%d\n", tot);
while(tot) printf("%d %d\n", stk[tot][0], stk[tot][1]), --tot;
return 0;
}

题解 CF1375E Inversion SwapSort的更多相关文章

  1. Codeforces Global Round 9 E. Inversion SwapSort

    题目链接:https://codeforces.com/contest/1375/problem/E 题意 给出一个大小为 $n$ 的数组 $a$,对数组中的所有逆序对进行排序,要求按照排序后的顺序交 ...

  2. 贪心/构造/DP 杂题选做

    本博客将会收录一些贪心/构造的我认为较有价值的题目,这样可以有效的避免日后碰到 P7115 或者 P7915 这样的题就束手无策进而垫底的情况/dk 某些题目虽然跟贪心关系不大,但是在 CF 上有个 ...

  3. 题解 CF911D 【Inversion Counting】

    这是一道看似复杂其实也不简单的思维题. 其实思路很明显. 因为这道题的数据范围比较大,有1e5的询问,如果暴力(像我考场上那样打平衡树)的话可以做到$mnlogn$. 但那样也是稳T. 经过思考之后我 ...

  4. HDU 1394 Minimum Inversion Number ( 树状数组求逆序数 )

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number                         ...

  5. HDU 1394 Minimum Inversion Number(最小逆序数 线段树)

    Minimum Inversion Number [题目链接]Minimum Inversion Number [题目类型]最小逆序数 线段树 &题意: 求一个数列经过n次变换得到的数列其中的 ...

  6. Inversion Sequence(csu 1555)

    Description For sequence i1, i2, i3, … , iN, we set aj to be the number of members in the sequence w ...

  7. HDU 4911 Inversion (逆序数 归并排序)

    Inversion 题目链接: http://acm.hust.edu.cn/vjudge/contest/121349#problem/A Description bobo has a sequen ...

  8. CodeForces 489A SwapSort (选择排序法)

    SwapSort 题目链接: http://acm.hust.edu.cn/vjudge/contest/121332#problem/A Description In this problem yo ...

  9. UVA 11990 ``Dynamic'' Inversion 动态逆序对

    ``Dynamic'' Inversion Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/index ...

随机推荐

  1. UNP第11章——名字与地址转换

    1.域名系统 程序中只使用主机名和服务名的好处是,如果IP或端口变化,只需要改变映射关系,不需要重新编译程序. 1.1 资源记录 DNS的条目为资源记录,有用的项如下: A IPv4地址 AAAA I ...

  2. JavaScript高级程序设计(第四版) -- 随笔 -- 数组(未完)

    数组方法 .every() 与 .some() 传给两个个方法的函数都接收3个参数:数组元素.元素索引和数组本身. .every() -- 对于每一项都需要返回true,它才会返回true 若中途有一 ...

  3. web开发的本质

    1.浏览器上输入一个网址回车后都发生了什么? (1)浏览器相当于一个客户端,将域名翻译成ip,浏览器给服务端发送一个消息. (2)服务端拿到消息 (3)服务端返回消息 (4)浏览器展示页面 2.客户端 ...

  4. SpringBoot整合MyBatis,HiKari、Druid连接池的使用

    SpringBoot整合MyBatis 1.创建项目时勾选mybatis.数据库驱动.   mysql驱动默认是8.x的版本,如果要使用5.x的版本,创建后到pom.xml中改. 也可以手动添加依赖 ...

  5. .NET 5 ORM 八大实用技巧 干货 - SqlSugar ORM

    介绍 sqlsugar已经在第一时间完美兼容.NET5并且已经有人在使用了, 很多人都担心用了开源框架遇到问题无法解决,导致前功尽弃,使用SqlSugar你大可放心,除了有详细文档和几年的大量用户积累 ...

  6. 小程序ui自动化(一),用uiAutormatorViewer定位元素失败,如何解决

    1.定位元素 用android ADT自带工具:uiAutormatorViewer,会报如下错误 可能是环境与手机不兼容 可以用以下方法解决:(参考:https://blog.csdn.net/qq ...

  7. js实现长按显示全部内容

    js实现文字超出省略号显示时长按显示全部 元素内容超出省略号显示时长按该元素,生成toast弹窗(id:toolkitContainer),以显示全部内容 #toolkitContainer { ma ...

  8. P6631 [ZJOI2020] 序列

    可以将问题用形象的方式来表述.给定一排点,第 \(i\) 个点有它需要的覆盖次数 \(a_i\).有两种线段,一种能覆盖连续的一些点,称其为连续线段:另一种能覆盖相邻间隔为 \(1\) 的一些点,称其 ...

  9. CCF-CSP认证 C++题解目录

    持续更新中,记录刷题过程并分享一下小小的心得总结. 试题编号 试题名称 标签 202006-1 线性分类器 | 题解 线性规划 202006-2 稀疏向量| 题解 归并排序思想 202006-3 化学 ...

  10. macOS tips

    1.设置常用linux命令的快捷键 打开terminal command+space,搜索"terminal"关键字 进入"~/"目录 cd ~/ touch ...