poj 2299 Ultra-QuickSort(树状数组求逆序数+离散化)...
分类:
其他好文 时间:
2014-08-06 10:30:11
阅读次数:
172
求逆序数模板(树状数组+离散化 || 归并排序法)...
分类:
其他好文 时间:
2014-08-06 10:28:52
阅读次数:
218
/** \brief poj2299
*
* \param date 2014/8/5
* \param state AC
* \return memory 4640K time 3250ms
*
*/
#include
#include
#include
#include
using namespace std;
const int MAXN=500000;
int Ar...
分类:
其他好文 时间:
2014-08-05 22:48:40
阅读次数:
313
HDU 4911 Inversion
题目链接
题意:给定一个数组,可以相邻交换最多k次,问交换后,逆序对为多少
思路:先利用归并排序求出逆序对,然后再减去k就是答案
代码:
#include
#include
#include
using namespace std;
const int N = 100005;
int n, num[N], save[N],...
分类:
其他好文 时间:
2014-08-05 22:36:10
阅读次数:
193
HDU 4911 Inversion
考点:归并排序
思路:这题呀比赛的时候忘了知道可以用归并排序算出逆序数,但是忘了归并排序的实质了,然后不会做……
因为看到题上说是相邻的两个数才能交换的时候,感觉归并排序好像不是得要相邻的呀,然后就这样晕……刚才重新看了才发现,归并就是相邻的交换的,正好是用来求逆序数的,唉……真的是做这个归并排序比赛就来了……真好!
#include
#inclu...
分类:
其他好文 时间:
2014-08-05 22:32:50
阅读次数:
264
题目链接:hdu 4911 Inversion
题目大意:给定一个序列,有k次机会交换相邻两个位置的数,问说最后序列的逆序对数最少为多少。
解题思路:每交换一次一定可以减少一个逆序对,所以问题转换成如何求逆序对数。
#include
#include
#include
using namespace std;
typedef long long ll;
const int m...
分类:
其他好文 时间:
2014-08-05 22:32:00
阅读次数:
291
题目链接题意 : 给你一个数列,可以随意交换两相邻元素,交换次数不超过k次,让你找出i aj的(i,j)的对数最小是多少对。思路 : 一开始想的很多,各种都想了,后来终于想出来这根本就是求逆序数嘛,可以用归并排序,也可以用树状数组,不过我们用树状数组做错了,也不知道为什么。求出逆序数来再减掉k次,....
分类:
其他好文 时间:
2014-08-05 22:02:20
阅读次数:
210
这题是2Y,第一次WA贡献给了没有long long 的答案QAQ题意不难理解,解题方法不难。先用归并排序求出原串中逆序对的个数然后拿来减去k即可,如果答案小于0,则取0学习了归并排序求逆序对的方法,可以拿来当模板 TVT贴代码了: 1 #include 2 #include 3 #includ.....
分类:
其他好文 时间:
2014-08-05 21:49:30
阅读次数:
250
显然每次交换都能减少1
所以求出逆序数对数,然后-=k就好了。。。
_(:зゝ∠)_
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 100005
#define ll long long
ll c[N+100000], maxn;
inlin...
分类:
其他好文 时间:
2014-08-05 19:25:20
阅读次数:
213
创建单线性链表,常见的有头插法、尾插法创建线性链表,常见的操作有:创建链表、查找、删除、增加元素、求逆链等操作。
这里首先才有头插法创建链表:
//头指针唯一确定一个单链表
#define MaxSize 15
typedef int elem_type ;
typedef struct linklist
{
elem_type data;
str...
分类:
其他好文 时间:
2014-08-04 17:51:41
阅读次数:
219