题目链接:https://www.luogu.org/problem/show?pid=1966 这个题啊,naive(虽然我不会证明)。 举了个特例,得出结论:对于两列数,一定是最大与最大的相对,最小的与最小的相对。 然后就以离散化一下,然后随便用个树状数组求个逆序对就好了。 一开始我还分别写了两 ...
分类:
其他好文 时间:
2017-09-18 18:56:42
阅读次数:
138
题目链接 直线的交点 两条直线的交点如果落在两个平板之内的话 假设这两条直线和两条平板的交点横坐标分别为 $x1, x2, X1, X2$ 那么有$(x2 - x1)(X2 - X1) < 0$ 于是这就转化成了一个经典问题 我们求出所有直线和平板的两个交点的横坐标,按其中一个平板的横坐标排序, 然 ...
分类:
其他好文 时间:
2017-09-17 13:51:45
阅读次数:
236
1. 最简单的思路,对每个值,遍历与其逆序的数组对;但时间复杂度太高; 2. 归并排序的思路: 先将数组分隔成子数组,先统计出子数组内的逆序对的数目,然后统计两个相邻子数组之间的逆序对的数目; ...
分类:
编程语言 时间:
2017-09-13 23:22:48
阅读次数:
208
题目描述 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数。若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数。那么逆序对数为k的这样自然数数列到底有多少个? 输入输出格式 输入格式: 第一行为两个整数n,k。 输出格式: 写入一个整数,表示符合 ...
分类:
其他好文 时间:
2017-09-13 23:19:02
阅读次数:
172
我觉得每次博客时,开头的话语是最难写的,这次就不写了,但是要鼓励自己好好学习! 题意: 样例: 这题理解起来不是很难的,但是麻烦的地方就是时间复杂度。如果用常规的做法,肯定会超时,所以只能用非常规的方法了,但是这里贴出常规的代码,就当是给自己一个警示! 1.常规的方法(超时) 常规的方法非常简单,这 ...
分类:
编程语言 时间:
2017-09-13 14:06:53
阅读次数:
193
【BZOJ4769】超级贞鱼 Description 马达加斯加贞鱼是一种神奇的双脚贞鱼,它们把自己的智慧写在脚上——每只贞鱼的左脚和右脚上各有一个数。有一天,K只贞鱼兴致来潮,排成一列,从左到右第i只贞鱼会在右脚写Ai,左脚上写上i;第二年,这K只贞鱼以右脚的数为第一关键字、左脚的数为第二关键字, ...
分类:
编程语言 时间:
2017-09-10 11:16:36
阅读次数:
168
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,siz ...
分类:
编程语言 时间:
2017-09-08 00:23:45
阅读次数:
225
T1 屠龙宝刀点击就送 树状数组求逆序对+大特判 T2 屠龙宝刀点击就送 暴力dfs T3 屠龙宝刀点击就送 正解dp。。自动弃疗 #include <cstring> #include <cstdio> #define N 1505 int pos[27][N],num[27],n,q; char ...
分类:
其他好文 时间:
2017-09-05 23:05:53
阅读次数:
213
一眼题...f[i][j]前i个数有j个逆序对的数量 f[i][j]=sigma(f[i-1][j-k]){1<=k<=i} 维护一个前缀和即可 #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #incl ...
分类:
其他好文 时间:
2017-09-03 22:09:02
阅读次数:
161
【AC】 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 5 const int maxn=1e5+2; 6 int a[maxn]; 7 int tmp[maxn]; 8 int n; 9 ll ...
分类:
编程语言 时间:
2017-09-03 17:10:43
阅读次数:
128