E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Ultra-QuickSort
【树状数组】 poj2299
Ultra-QuickSort
Ultra-QuickSort
题目:http://poj.org/problem?
ACM_Ted
·
2012-08-19 11:00
c
POJ 2299
Ultra-QuickSort
经典问题,归并排序,求逆序数。代码如下:#include#include#include#include#include#includeusingnamespacestd;longlonga[500002],b[500002],cct;voidmerge_sort(intx,inty){if(y-x>1){intm=x+(y-x)/2;intxx=x,yy=m,i=x;merge_sort(x,m
goomaple
·
2012-08-14 21:03
POJ
杂题
POJ 2299
Ultra-QuickSort
经典问题,归并排序,求逆序数。代码如下:#include #include #include #include #include #include usingnamespacestd; longlonga[500002],b[500002],cct; voidmerge_sort(intx,inty) { if(y-x>1) { intm=x+(y-x)/2; intxx=x,yy=m,i=x
GooMaple
·
2012-08-14 21:00
merge
POJ 2299
Ultra-QuickSort
Description Inthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctintegersbyswappingtwoadjacentsequenceelementsuntilthesequenceissortedinascendingorder.F
ultimater
·
2012-08-14 08:00
poj 2299
Ultra-QuickSort
(求逆序数,树状数组)
Ultra-QuickSortTimeLimit:7000MS MemoryLimit:65536KTotalSubmissions:27736 Accepted:9946DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctinte
nealgavin
·
2012-08-11 20:00
poj 2299
Ultra-QuickSort
(归并排序求逆序数)
题目分析:求逆序数,,,思路:归并排序,关键在于统计逆序数,如果arr[i]>arr[j],则,ans+=m-i+1,代码:#include #include usingnamespacestd; intn; __int64ans; intarr[1001000],arr1[1001000]; voidMerge(ints,intm,intt); voidMergeSort(ints,intt)
wconvey
·
2012-08-06 11:00
poj 2299
Ultra-QuickSort
(离散化+树状数组)
按照 http://hi.baidu.com/czyuan_acm/blog/item/49f02acb487f06f452664fbc.html的思路写的代码,1.先离散化,要倒着编号2.求出每个点左边比它小的点的个数代码:#include #include #include usingnamespacestd; structnode{ intvalue,no; }arr[1000100];
wconvey
·
2012-08-05 12:00
POJ2299
Ultra-QuickSort
(归并排序)
手好生啊,归并排序,敲了这么久……题目意思是用冒泡排序的交换方式(只能交换相邻的俩个元素)最少几次可以把给出的序列做成升序,N有50W归并同时,统计需要往后移动的元素移动的距离之和,即为答案Code:#include #include constintN=500001; inta[N],tt[N]; __int64count; voidmerge_pass(intleft,i
l04205613
·
2012-05-05 21:00
poj 2299
Ultra-QuickSort
(逆序对)
【题目大意】:给你n个数,求其逆序对【解题思路】:归并排序或者树状数组【代码】://树状数组 #include #include #include #include #include #include #include #include #include #include #include usingnamespacestd; #defineeps1e-8 #definepiacos(-1.0
new_wu
·
2012-03-22 02:00
c
POJ 2299
Ultra-QuickSort
Ultra-QuickSortTimeLimit:7000MSMemoryLimit:65536KTotalSubmissions:24310Accepted:8696DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctintege
cmonkey_cfj
·
2012-02-03 22:00
POJ-2299
Ultra-QuickSort
题目链接:http://poj.org/problem?id=2299题目大意:给你N个数组成的序列,求这个序列的逆序数一共有多少个。这个序列个数不超过100000.解题思路:很经典的一个问题,解决方法有两种:第一种方法是归并排序,第二种方法是树状数组。如果我们要枚举的话,复杂度为o(n*n),铁定TLE,所以要考虑更高效的算法。归并操作中,当取到右边集合的第i个元素时,左边集合中元素的个数就是这
niushuai666
·
2011-12-14 16:00
算法
merge
树状数组总结
2)poj2299
Ultra-QuickSort
难度:1题意:给你n个不同的数,求逆序对个数。分析:有两种方法:归并排序;树状数组。这里提一下树状数组的方法。倒着处理,每次统计比当前
fjsd155
·
2011-10-18 11:00
数据结构
apple
c
tree
mobile
Matrix
poj 2299
Ultra-QuickSort
(求逆序数:离散化+树状数组)
Ultra-QuickSort
Time Limit: 7000MS Memory Limit: 65536K Total Submissions: 22147
gzhu_101majia
·
2011-08-08 16:00
数据结构
C++
c
算法
ACM
POJ 2299
Ultra-QuickSort
POJ2299Ultra-QuickSort求逆序对个数。我是用离散化+树状数组做的。以下是我的代码:/* * Author: lee1r * Created Time: 2011/8/5 23:33:01 * File Name: poj2299.cpp */#include#include#include#include#include#include#include#include#in
心如止水
·
2011-08-05 23:00
POJ 2299
Ultra-QuickSort
归并排序
题意:每次交换两个数,求排序所做的交换次数题解:用归并排序求逆序数#include inta[500000],b[500000]; longlongcnt,n; voidmergesort(intl,intr) { if(l>=r)return; intmid=(l+r)/2; mergesort(l,mid); mergesort(mid+1,r); inti=
Tsaid
·
2011-07-23 11:00
zoj 2386 || poj 2299
Ultra-QuickSort
我晕,这个我没有写题解么。。忘了。。 求逆序数。。。 白皮书上有,用的归并排序,今天又看了算导的归并排序,写了下,过了。 因为这个题在树状数组的分类下的,所以尝试用树状数组做。想了会。。。 因为数的范围很大,不过个数只有50W,所以就排下序,重新编数,这个据说叫离散化==。。。 编数之后,求这个数之前比这个数大的,不过用树状数组的话求比它小的值是比较容易的,那么就把数离散化的时候从大到小排序,然后
zxy_snow
·
2011-03-17 23:00
poj 2299
Ultra-QuickSort
树状数组
poj2299Ultra-QuickSort树状数组求逆序对数,树状数组数据范围较大,要离散化。给每一个数据一个id,第i个数据的id为i。然后从小到大排序,对于每个id做ans+=read(n)-read(array[i].id),read(n)-read(array[i].id)表示原来在当前数的后面(其id大于当前数的id),现在在当前数前面的数个数,也就是逆序对数。#include#inc
hehexiaobai
·
2011-03-16 20:00
POJ2299
Ultra-QuickSort
归并排序求逆序数对
ProblemAddress:http://poj.org/problem?id=2299 归并排序,同时求逆序数对。 第一次写归并排序,其实还是蛮简单的。 在归并排序中加多一句话便可以同时求出逆序数对的数目。 思路如下: 假设a、b两个相邻的已排序的区间。做归并排序。c作为临时数组。 如果aibi,说明bi小于a中剩下的数,即bi均是a中剩下的数的逆序数,此时把bi添加到c中,并算出逆序数的对数
Human_CK
·
2011-03-11 10:00
c
BI
poj2299——
Ultra-QuickSort
题意:给定若干数,问需多少次调换,可以变成升序数组。 思路:运用归并排序,计算需调换次数。 #include<iostream> #include<cstdio> #include<cmath> using namespace std; int n; __int64 step,a[500005],tt[500005]; void merge(__int64
44424742
·
2011-01-01 15:00
J#
poj 2299
Ultra-QuickSort
////poj2299Ultra-QuickSort归并排序/*题解:逆序数,仅此而已。。PS:水题,还是写了半个小时。*/#include<iostream>#include<algorithm>usingnamespacestd;constintinf=1<<28;intn,m;inta[500010],temp[500010],ans;voidMerge_
birdforever
·
2010-09-21 21:00
POJ 2299
Ultra-QuickSort
【树状数组+离散化】
POJ2299Ultra-QuickSort【树状数组+离散化】求逆序数,N个数,N 2 #include 3 #define M 500001 4 using namespace std; 5 int c[M],aa[M],n; //aa数组为排序后重新编号用 6 struct digit 7 { 8 int num,id; 9 }a[M];
为生存而奔跑
·
2010-08-02 08:00
poj 2299
Ultra-QuickSort
http://162.105.81.212/JudgeOnline/problem?id=2299 归并排序,在"归并"时计算逆序数的个数.ret+=mid-first1+1; #include#includeusingnamespacestd;#defineMAX500000__int64ret;inta[MAX],tmp[MAX];voidMerge(int*a,intfirst,intmid
SMCwwh
·
2010-07-16 09:00
merge
PKU 1007 DNA Sorting/2299
Ultra-QuickSort
PKU1007DNASorting/2299Ultra-QuickSort问题:http://acm.pku.edu.cn/JudgeOnline/problem?id=1007http://acm.pku.edu.cn/JudgeOnline/problem?id=2299思路:求逆序对的个数这两题的基本问题是一致的,给定一个数组(包括字符串),求出逆序对的个数1.最简单的方法两层循环,复杂度O
A Za, A Za, Fighting...
·
2010-07-04 10:00
POJ.2299
Ultra-QuickSort
【树状数组+离散化】
POJ.2299Ultra-QuickSort【树状数组+离散化】一个求逆序对的题,N个数,N 2 #include 3 #define M 500001 4 using namespace std; 5 int c[M],aa[M],n; //aa数组为排序后重新编号用 6 struct digit 7 { 8 int num,id; 9 }a[M];
M.J的blog
·
2010-05-03 17:00
POJ 2299
Ultra-QuickSort
(归并排序)
//求逆序数对#includeusingnamespacestd;constintMAXN=500001;longlongintA[MAXN],T[MAXN],cnt;voidmerge_sort(longlongint*A,intx,inty,longlongint*T,longlongint&cnt)//归并排序{if(y-x>1){intm=x+(y-x)/2;//划分过程intp=x,q=
ChinaCzy
·
2010-03-07 20:00
merge
POJ 2299
Ultra-QuickSort
POJ2299Ultra-QuickSort题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=2299题目描述:求冒泡排序的交换次数所用算法:用归并排序,求逆序数的个数提交情况:1次tle(直接冒泡排序n^2的复杂度,对于5000000的数据量,必然超时),1次wa(统计个数时整数溢出了),1a心得体会:初看题目很简单,没有往数据量方面想,直接冒泡
ACTime
·
2009-12-17 14:00
Pku acm 2299
Ultra-QuickSort
排序算法解题报告(四)----归并排序(MegerSort)求逆序数
什么是逆序数:跟标准列相反序数的总和,比如说,标准列是12345,那么54321的逆序数算法:看第二个,4之前有一个5,在标准列中5在4的后面,所以记1个,类似的,第三个3之前有45都是在标准列中3的后面,所以记2个,同样的,2之前有3个,1之前有4个将这些数加起来就是逆序数=1+2+3+4=10。再举一个24315。4之前有0个3之前有1个1之前有3个5之前有0个所以逆序数就是1+3=4。思想:
china8848
·
2008-03-29 00:00
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他