逆序对
Jerry99s
OI -> ACM -> AI
展开
-
NOIP2013 火柴排队
题目:http://www.luogu.org/problem/show?pid=1966# 分析:a中第几大一定对应b中第几大。ab同时移动相当于a移动,相对位置不变。所以,用c[i]表示a[i]需要移动到的 位置,求其中的逆序对。因为一个每移动相邻两个元素相当于消除一个逆序对。 代码:#include <cstdio>#include <algorithm>usi原创 2015-06-13 21:57:57 · 402 阅读 · 0 评论 -
洛谷2448 无尽的生命
题目:http://www.luogu.org/problem/show?pid=2448 分析:首先离散化,然后树状数组求所有操作过的数产生的逆序对,再求每个操作过的数与没操作过的数产生的逆序对,因为原始序列有序,所以很方便。 代码:#include <cstdio>#include <iostream>#include <algorithm>#include <map>using n原创 2015-10-02 22:06:21 · 520 阅读 · 0 评论 -
HDU 6318 Swaps and Inversions (树状数组求逆序对)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6318题意: 可以x元直接交换一对逆序对 可以y元交换两个相邻元素 求最小花费分析: 为了花费最少,交换的两个相邻元素一定也为逆序对; 所以x,y两种操作,每次均消除一对逆序对; 那么,求所有逆序对数ans,答案即为ans*min(x,y);先离散化,用树状数组求逆序对即可,注意处理...原创 2018-08-03 09:58:26 · 199 阅读 · 0 评论 -
HDU 6595. Everything Is Generated In Equal Probability (期望+逆元)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6595分析:设f(n)=Calculate(Array)×Probability[Calculate(Array)],其中|Array|=n;即f(n)=E[Calculate(Array)],其中|Array|=n;则ans=[ ∑f(n) ] / N,n<=N;考虑f(n)如何求:考...原创 2019-07-25 10:59:48 · 907 阅读 · 0 评论