测评传送门 题意: T组数据,n个数,按顺序选出3个,求所有满足单调递增或单调递减的数对总和 Sample Input Sample Output 思路: 这道算是逆序对的高级做法,因为不只是单纯地去求一个逆序对 要求单调递减的数对,我们可以先按常规做法求出所有逆序对,但我们仔细想一下,这是谁的逆序 ...
分类:
其他好文 时间:
2018-10-26 19:39:10
阅读次数:
179
结论巨好想,每一次操作可以看作把一个b往前移一位,另一个b往后移一位,逆序对个数不改变,判断即可做第一问。 此处代码仅给出第一问做法: c++ include include using namespace std; int n,f[1000001],g[1000001]; char a[10000 ...
分类:
其他好文 时间:
2018-10-25 21:40:19
阅读次数:
173
题目 "bzoj3289" 思路 区间求逆序对 离散化+莫队+树状数组修改 代码 cpp / Problem: 3289 User: 3010651817 Language: C++ Result: Accepted Time:5716 ms Memory:3064 kb / include inc ...
分类:
其他好文 时间:
2018-10-22 13:02:28
阅读次数:
125
最近在刷数据结构 数据结构题目比图论简单一点;从生疏到......蒟蒻。 一、树状数组&线段树基础 树状数组+差分+离散化=》可以用来求逆序对 树状数组+差分可以搞一搞区间修改; 当然,能用树状数组,基本(不知道是不是全部)都能用线段树。 线段树的操作就复杂的多了,子函数有build(),query ...
分类:
其他好文 时间:
2018-10-20 22:18:43
阅读次数:
180
题目戳这里 题意是n个数字,问逆序对为k的排列有多少种。 令f(n,k)表示n个数时,逆序对为k的排列种数。考虑k个逆序对时,第n个数字的放置的情况: 这第n个数可以插入的位置为n-i,其中i∈[0,n-1],插在第n-i个位置,则产生i个逆序对,不插入时,n-1个数则恢复成k-i个逆序对。 则有f ...
分类:
其他好文 时间:
2018-10-19 16:47:41
阅读次数:
123
HDU P3600 Simple Puzzle POJ P2893 N*M Puzzle (咕在前面, 这是两道基本一样的题, 我都没有A掉, 但我觉得我写的十分正确!!!不想改了先放上来orz 思路:这个题真是妙啊qwq我特意新建了一个“妙啊”分类给它qwq(然而A不掉 将二维转化为一维, 从左往 ...
分类:
其他好文 时间:
2018-10-19 00:14:11
阅读次数:
216
逆序对 对于一个数列$a_1...a_n$,定义一有序对$(i,j)$当且仅当$ia_j$为逆序对。接着我们来考虑怎么求 1. 归并排序 回顾归并排序的过程,将当且的数列$[l,r]$分成两个长度相等的部分$[l,mid]$和$[mid+1,r]$,分治下去排序,每次合并的代价是区间的长度,所以得到 ...
分类:
其他好文 时间:
2018-10-18 18:08:02
阅读次数:
130
传送门 树状数组求逆序对 + 离散化? 我好像永远都记不住怎么用树状数组求逆序对……以前我记得都是正着写的,这次怎么得倒着写才能过…… 然后本题a的范围极大,但是n的范围不大,500000,需要先手离散化一波,之后就可以正常按照树状数组操作了。然后在query的时候注意要-1. 我们来看一下代码。 ...
分类:
其他好文 时间:
2018-10-16 02:11:09
阅读次数:
135
"M × N Puzzle" Sol: $N M$数码某局面到达另一局面的可行性判定 可以通过逆序对个数的奇偶性是否相同来判定。 我们将这$N M 1$个数写成一列来看。 + 考虑行为奇数,列为奇数的情况 逆序对个数奇偶性相同时可达 空格左右移动不会改变逆序对的个数,而上下移动相当于改变了该列前后共 ...
分类:
其他好文 时间:
2018-10-14 11:28:39
阅读次数:
184