B. Petr and Permutations 大致题意: 给出一个1~n的排列,已知该序列是由1,2,3,,,,n随机交换k次数得来,其中$k=3 n$或$k=7 n 1$判断该序列是交换多少次得来。 交换任意两个数会使逆序对个数变化奇数个 ,而$3 n$和$7 n 1$奇偶性不同,因此我们可以 ...
分类:
其他好文 时间:
2018-05-30 21:04:32
阅读次数:
123
Another Version of Inversion 题意:只有2种走路方式,往右或者往下,求先走到一个大的数,在走到小的数的这种方式有多少。也就是说求出关于这个2维矩阵的逆序数。 题解:二维数组+逆序数就完事了。 代码: 1 #include<bits/stdc++.h> 2 using na ...
分类:
编程语言 时间:
2018-05-30 00:19:25
阅读次数:
223
二叉树 bzoj-3702 题目大意:现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有n个叶子节点,满足这些权值为1到n的一个排列)。可以任意交换每个非叶子节点的左右孩子。要求进行一系列交换,使得最终所有叶子节点的权值按照中序遍历写出来,逆序对个数最少。 注释:$2\le ...
分类:
其他好文 时间:
2018-05-25 16:52:39
阅读次数:
166
#include #include using namespace std; void merge(vector&input, int left, int right, int mid, vector&temp,int &count){ int i = left; int j = mid+1; in... ...
分类:
编程语言 时间:
2018-05-22 20:37:51
阅读次数:
178
给定一个1-N的排列A1, A2, ... AN,如果Ai和Aj满足i < j且Ai > Aj,我们就称(Ai, Aj)是一个逆序对。 求A1, A2 ... AN中所有逆序对的数目。 Input 第一行包含一个整数N。 第二行包含N个两两不同整数A1, A2, ... AN。(1 <= Ai <= ...
分类:
其他好文 时间:
2018-05-22 19:08:00
阅读次数:
150
https://www.lydsy.com/JudgeOnline/problem.php?id=3295 这个妹妹我曾见过的~~~ 之前应该在校内oj写了,似乎还写过题解?发现没写博客就重新水一遍代码水一篇博客好了。 把找逆序对的过程想成一个一个往里塞数字然后找每个数字可以组成的逆序对,把最后要去 ...
分类:
其他好文 时间:
2018-05-19 17:03:21
阅读次数:
178
一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对。要求输出数组A中的逆序对的总数。例如,对于数组{7,5,6,4},一共存在5个逆序对,分别是(7,5)、(7,6)、(7,4)、(5,4)、(6,4)。 注: ...
分类:
编程语言 时间:
2018-05-15 20:58:46
阅读次数:
191
一个自以为很对的东西,我们往-1放的数肯定是不增的。 然后就预处理一下,假如i这个位置放j会多多少逆序对。 DP一下,我的复杂度应该是O(n*m^2)的,然而你随便搞都能省掉一个m吧,我算了算好像可以过就不管了。 注意树状数组的时候getsum是a[i]-1,相同是不算逆序对的 ...
分类:
其他好文 时间:
2018-05-15 14:06:51
阅读次数:
172
3295: [Cqoi2011]动态逆序对 Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删 除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数 对于序列A,它的逆序对数定义为满足i<j,且A ...
分类:
其他好文 时间:
2018-05-12 02:49:06
阅读次数:
144
排序工作量之新任务(SHOI2001) 给出两个整数n和t,求n的全排列中逆序对数为t的个数,和逆序对数为t的字典序最小全排列。 首先第一个问题可以用dp解决,$f[i][j]$表示前i个数,j个逆序对的序列数,那么$f[i][j]=f[i 1][j k]\ (k include using nam ...
分类:
编程语言 时间:
2018-05-08 22:18:16
阅读次数:
147