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
2299
poj
2299
Ultra-QuickSort(树状数组+离散化的题目)据说是简单题,不过还是觉得好难。。。
1、http://poj.org/problem?id=22992、题目大意:一个序列有n个数字,他们是无序的,现在要将这些数字交换顺序,使得他们是从小到大排列的,输出最少交换几次,3、思路分析如果数字个数很小的话,实际上是可以用冒泡排序的,冒泡交换的步数实际上就是所求,但是数据很大,所以不能这么做,看网上解题报告用树状数组解决,作为第一个树状数组的题目,真心觉得好难,还得继续看,还有一个问题就是
sdjzping
·
2014-02-25 17:00
poj
2299
Ultra-QuickSort 题解
DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctintegersbyswappingtwoadjacentsequenceelementsuntilthesequenceissortedinascendingorder.Fort
u013724185
·
2014-02-22 13:00
题解
poj
POJ
2299
归并求逆序数
#include #include #include usingnamespacestd; #definemxn500040 #definelllonglong llcnt; voidmerge_sort(int*A,intx,inty,int*T){ if(y-x>1){ intm=x+(y-x)/2; intp=x,q=m,i=x; merge_sort(A,x,m,T); merge_sor
u013654696
·
2014-02-13 17:00
POJ
2299
Ultra-QuickSort 求逆序对数(归并排序,树状数组)
Ultra-QuickSortTimeLimit:7000MS MemoryLimit:65536KTotalSubmissions:36281 Accepted:13078DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctint
u011400953
·
2013-12-15 11:00
归并排序
poj
树状数组
求逆序对数
poj
2299
Ultra-QuickSort
归并排序求逆序对数(不能理解图片乱入...)Ultra-QuickSortTimeLimit: 7000MSMemoryLimit: 65536KTotalSubmissions: 36250Accepted: 13066DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocesse
locusxt
·
2013-12-11 13:00
poj
poj
2299
求一下逆序数,因为冒泡交换的准则是大于或者小于,逆序数累加的准则同样也是。#includeusing namespace std;long long cnt;void merge(int array[], int left, int mid, int right){ int* temp = new int[right - left + 1]; int i, j, p; for
zhengnanlee
·
2013-12-01 00:00
数据结构
ACM题解报告
NOIP2013 Day1第二题 POJ
2299
这里说的很好,每一步都很清楚,之前不明白怎么用树状数组求逆序对。转载:树状数组,具体的说是离散化+树状数组。这也是学习树状数组的第一题.算法的大体流程就是:1.先对输入的数组离散化,使得各个元素比较接近,而不是离散的,2.接着,运用树状数组的标准操作来累计数组的逆序数。算法详细解释:1.解释为什么要有离散的这么一个过程? 刚开始以为999.999.999这么一个数字,对于int存储类型来说是足
zz_ylolita
·
2013-11-09 19:00
题解
noip
day1
提高组
poj
2299
(离散化+树状数组求逆序数)
题意:求出序列的逆序数之和。思路:今天做了一道树状数组处理的逆序数,给的数值太大,要离散化处理。结果会超int。#include #include #include constintN=500010; intcnt[N],n; structnode { intw; intid; }p[N]; intcmp(voidconst*a,voidconst*b) { node*c,*d; c=(node*
aixiaoling1314
·
2013-11-02 19:00
编程
算法
百度
ACM
树状数组
(应用排序算法编程7.2.2)POJ
2299
Ultra-QuickSort(使用归并排序来计算逆序对的个数)
/* *POJ_
2299
.cpp * *Createdon:2013年11月1日 *Author:Administrator */ #include #include usingnamespacestd
caihongshijie6
·
2013-11-01 11:00
POJ
2299
Ultra-QuickSort
id=
2299
题意:有n个数,进行升序排列,每次只能移动相邻的两个数,问最少需要操作多少次题解:典型的树状数组求逆序数问题。
fjy4328286
·
2013-10-25 21:00
树状数组
VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100.dll, xxx100d.dll等的解决方法
转自:http://hi.baidu.com/zhlrtttty/item/2bf72f163863dd5c2a3e
2299
问题:VS2010c++编写的程序在别人的机子运行不了,缺少mfc100u.dllxxx100d.dll
sdcxyz
·
2013-09-26 16:00
POJ
2299
Ultra-QuickSort
特殊的快速排序——归并排序。给定N个数,求排成升序序列所需要的最小交换次数。每次只能交换相邻的两个数。作为一名《线性代数》只考了60+的选手竟然一眼就看出要求逆序数有木有,可是我不会求啊有木有,搞来搞去还是要用归并排序啊有木有。T^T归并排序的主要思路:归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。首先考虑下如何将将二个
u012161037
·
2013-09-18 15:00
POJ
2299
Ultra-QuickSort
逆序对问题,(单点更新,区间查询),从左到右扫已知的数有多少个比当前数大。/* Author:Speedcell Update:2013-05-30 Version:soppYcell2.2(a) */ #include #include #include #include #include #include #include #include #include #include #inclu
speedcell4
·
2013-09-06 15:00
poj
2299
(逆序数+线段树)
Ultra-QuickSortTimeLimit:7000MS MemoryLimit:65536KTotalSubmissions:34679 Accepted:12466DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctint
xj2419174554
·
2013-08-29 21:00
数据结构
线段树
树状数组
归并排序应用——poj
2299
id=
2299
题意:输入任意序列,求将此序列转换为递增数列后需要交换的次数。解:通过归并排序法可以提高效率,使用冒泡肯定会超时。
lgdblue
·
2013-08-22 21:00
算法
归并排序
POJ
2299
Ultra-QuickSort(归并排序)
题目链接:Ultra-QuickSort解题思路:之前一直没有自己动手写过归并排序,这个题目数据量很大归并排序平均复杂度为nlogn,又可以利用来求逆序数。这个题就是求逆序数(线性代数中有写)。就是当两个排好序的数组归并的时候如果去的数字是右面数组的,那么这是要在逆序数上面加上左面数组剩余数字的个数。最后逆序数要用__int64来表示。注意是%I64d。 #include #include #
u010787640
·
2013-08-21 12:00
poj
2299
Ultra-QuickSort
点击打开poj
2299
思路:离散化+树状数组分析:1题目的意思就是要求逆序数对2题目的输入个数有500000的规模但是每个数的最大值为999999999,因此我们需要离散化这些数据3对于数据91054我们离散化成
cgl1079743846
·
2013-08-12 16:00
poj
2299
(树状数组)
点击打开链接题意:给你一个序列,如果每次可以交换相邻的两个数,则将序列变位递增序列需要多少次。。。分析:按数字的大小从小到大排序,然后再进行离散化。很明显求逆序数。。。转自:点击打开链接.先对输入的数组离散化,使得各个元素比较接近,而不是离散的,2.接着,运用树状数组的标准操作来累计数组的逆序数。算法详细解释:1.解释为什么要有离散的这么一个过程? 刚开始以为999.999.999这么一个数字
yyf573462811
·
2013-08-12 16:00
poj
树状数组
树状数组专题【完结】
第一题poj
2299
Ultra-QuickSort点击打开poj
2299
思路:离散化+树状数组分析:1题目的意思就是要求逆序数对2题目的输入个数有500000的规模但是每个数的最大值为999999999
cgl1079743846
·
2013-08-12 09:00
poj
2299
离散化+树状数组求逆序数
传送门题意:求逆序数。思路:500000个数,n*n的朴素求法显然不行,数状数组吧,可是数字可达近10亿,这么大的数组开不了,就先离散化一下吧,这样就好啦。#include #include #include #include usingnamespacestd; structnode { inta,b,id; }p[500005]; intn,c[500005]; longlongintans;
cugbbaoge
·
2013-08-09 20:00
poj
Baoge
poj 1804Brainman(树状数组)
id=1804题目解析: 此题和poj
2299
Ultra-QuickSort(http://poj.org/problem?
u010138811
·
2013-08-08 15:00
树状数组
POJ:
2299
Ultra-QuickSort(归并排序/树状数组)
要移动元素的次数实质就是逆序对数。这个在入门经典上有详细解释,归并排序一改就ok了。这里我们首先应该明确一个问题,前后两段内部的元素位置并不影响两个分别来自前后两段元素的逆序性,简单点说,a来自前段,b来自后端,如果(a,b)是个逆序对,那无论a,b在其段内怎么移动,(a,b)仍是逆序对。所以这个问题的解法就是用前段的逆序对数加上后段的逆序对数,再加上合并之后的的逆序对数,很明显这是一个递归过程。
kkkwjx
·
2013-08-06 13:00
归并排序
分治法
树状数组
poj
2299
Ultra-QuickSort
Ultra-QuickSortTimeLimit: 7000MS MemoryLimit: 65536KTotalSubmissions: 33807 Accepted: 12101DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinc
y5885922
·
2013-08-03 23:00
c
算法
ACM
TOJ
2299
. Electricity【求无向图割点】
TOJ
2299
.Electricity【求无向图割点】分类: 【图论专辑】2010-07-2402:55 112人阅读 评论(0) 收藏 举报 /*给出一个无向图,计算去掉一个点后所能得到的最大块数
pi9nc
·
2013-07-31 13:00
【图论专辑】
poj
2299
- Ultra-QuickSort (求逆序数)
题意:给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。我们需要知道:逆序数=在只允许相邻两个元素交换的条件下,得到有序序列的交换次数所以我们需要求数列的逆序数,O(N*N)的算法肯定会超时的,所有我们寻求较为高效的排序方法,归并排序就是充分利用分治法的而提高效率的排序方法。归并排序:#include #defineM500005 intn,s[M]; lo
shankeliupo
·
2013-07-28 15:00
poj
2299
交换的最少次数 归并排序
实话是,首先看到这个题目,我就不会,然后看了结题报告,了解了一个知识就是逆序数这里有关于一个大神的思路讲解,很清楚http://blog.csdn.net/lyy289065406/article/details/6647346我主要加以说明的是关于逆序次数相加的地方这归并过程中,请注意,j前面实际上是没有位置的了,因为一发现满足的就被放到辅助数组中去了,所以,下一次从j移动到i实际上就是只要移动
ZYY173533832
·
2013-07-27 11:00
归并排序
CI20.4--计算0~n之间某个数出现的次数
12306这个数为例,首先我们看千位,千位上2的出现次数有:2000~2999、12000~12306,一共是1*1000+307;百位上2的出现次数有:200~299、1200~1299、2200~
2299
f_x_q
·
2013-07-23 14:00
POJ
2299
- Ultra-QuickSort 统计逆序对
可以交换相邻的数,问最少交换几次后数列变成非降的.. 对于每个数若小于左边的数与左边的数交换..大于右边的数与右边的数交换...如此可以推出所求的答案等价为这个数列的逆序数... 如果暴力查找逆序数是O(n^2)的...对于此题数据.不可接受... 采用分治的思想...在归并排序的过程中边排序边统计逆序数的个数...Program:#include #include #include #incl
kk303
·
2013-07-20 16:00
POJ
2299
树状数组求逆序数+离散化
400ms+,速度很快啊……#include #include #include usingnamespacestd; structnode { intvalue; intpos; }a[500005]; intc[500005]; intb[500005]; intn; boolcmp(constnode&a,constnode&b) { returna.value0) { sum+=c[end
t1019256391
·
2013-07-16 11:00
poj
2299
Ultra-QuickSort
........................................................................................................................................................................................................
u010138811
·
2013-07-14 23:00
poj
树状数组
求逆序数的题-实现(归并排序和树状数组)
PKU
2299
-求逆序数的题-实现(归并排序和树状数组)分类: 算法和数据结构学习2010-02-0610:28 1936人阅读 评论(5) 收藏 举报inputmerge存储算法数据结构struct
pi9nc
·
2013-06-15 23:00
算法和数据结构学习
poj
2299
Ultra-QuickSort (树状数组解法)
Ultra-QuickSortTimeLimit: 7000MS MemoryLimit: 65536KTotalSubmissions: 32746 Accepted: 11691DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinc
u010228612
·
2013-06-09 10:00
Hdu 1394 Minimum Inversion Number、Poj
2299
Ultra-QuickSort
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题意:求某种规定序列中的最小逆序数。递推比较最小那部分比较简单,就不说了。主要想说:求逆序数可以用构建线段树的方法来做。其实思想和计数排序的思想差不多。每次处理a[i]时,先统计一下已经被计数的前几个数的计数和。(比较的是值。)然后再更新这个计数和。这道题的数据范围和下标范围是一样的,所以可以直接
niuox
·
2013-06-06 17:00
线段树
离散化
离散化+树状数组 求逆序对数
先看POJ
2299
Ultra-QuickSortTimeLimit:7000MS MemoryLimit:65536KTotalSubmissions:32606 Accepted:11633DescriptionInthisproblem
corncsd
·
2013-05-28 11:00
数据结构
==================================[排序与查找]==================================归并排序与逆序数POJ
2299
:Ultra-QuickSort
l383137093
·
2013-05-18 19:00
数据结构
POJ
2299
(树状数组)
求逆序数对。看了一下别人的题解,发现这题还可以用树状数组的方法来做。因为数据大小范围为0~999,999,999,若用此数作为数组下标肯定会超出内存限制,所以采用离散化的方法先将数据范围缩小。比如9,1,4,3,5可以变为5,1,3,2,4来处理,这样数组最大的下标就是5,大大缩小了数据范围,因为n #include #include #include usingnamespacestd; #de
immiao
·
2013-05-13 19:00
MIUI V5暗讽老罗 小米快速迭代走向机海战术
两款硬件的配置不必多言,一贯的性价比风,同时小米2S
2299
元的报价也为“1999元”style留出了300元的炒作空间,这同样是小米熟悉的套路。
hanhan091011
·
2013-05-09 17:15
老罗
锤子rom
MIUIV5
POJ
2299
(归并排序)
#include #include __int64counter; voidmerge(longintA[],intp,intq,intr) { intn1,n2,i,k,j,m=1,n=1; longint*L,*R; n1=q-p+1; n2=r-q; L=malloc((n1+2)*sizeof(int)); R=malloc((n2+2)*sizeof(int)); for(i=p;in2
immiao
·
2013-05-07 00:00
POJ
2299
:Ultra-QuickSort
点击打开题目链接Ultra-QuickSortTimeLimit: 7000MS MemoryLimit: 65536KTotalSubmissions: 32289 Accepted: 11493DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceof
l383137093
·
2013-05-04 21:00
数据结构
线段树
归并排序
逆序数
树状数组
poj
2299
Ultra-QuickSort 求逆序数 树状数组解法
题目链接 逆序的概念大家都知道,一个数到逆序数就是该数左边大于它到数的个数。 很多没学过数据结构的人一上来肯定就是一个个数了,看看数据量500k,显然这种暴力的方法是行不通的。 我们换种想法,可以在输入过程中对每个数的逆序数求解,建一个vis数组(初始化为0),只要输入一个数,在它的位置标记为1,然后计算出它的左边一共有多少数被标记了就可以知道多少个数比他小了,当然逆序数也就知道了,求
xindoo
·
2013-04-25 16:00
poj
离散化
逆序数
树状数组
id=
2299
树状数组 《复习》
//求解逆序数对:(后面的数比当前的数小的个数) //例:91054 //9的逆序数:91909594共有4个 //1的逆序数:10共有1个 //0的逆序数:为0个 //5的逆序数:54为1个 //4的逆序数:0个 //所以91054的逆序数共有6个 #include #include #include #include usingnamespacestd; structnode { intx;
wahaha1_
·
2013-04-12 15:00
POJ
2299
Ultra-QuickSort(64位long long)
Ultra-QuickSortTimeLimit:7000MS MemoryLimit:65536KTotalSubmissions:31628 Accepted:11281DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinctint
wangwenhao00
·
2013-04-09 19:00
POJ
2299
《Ultra-QuickSort》方法:归并排序找逆序数
题目大意:求一个数的逆序数,比如54321的逆序数为4+3+2+1+0=10,逆序数=在只交换相邻两数的前提下,需要的交换次数。解题思路:因为这题数据量为50W,时间限制为7000ms,用冒泡排序找相邻交换次数肯定超时,因此用归并排序找相邻交换次数。之所以不用快速排序,是因为它不符合相邻元素交换的要求。//3748k2454ms#includeusingnamespacestd;constinti
相门码农
·
2013-03-22 13:56
POJ
缺少mfc100.lib等lib问题和nafxcw.lib与LIBCMT.lib链接冲突问题
1.在别人的电脑上提示缺少mfc100.lib等问题,参考了http://hi.baidu.com/zhlrtttty/item/2bf72f163863dd5c2a3e
2299
具体操作:使用VS2010
宽恕这世界
·
2013-03-11 16:00
POJ
2299
Ultra-QuickSort 【归并排序 || 树状数组求逆序对数】
id=
2299
Ultra-QuickSortTimeLimit: 7000MS MemoryLimit: 65536KTotalSubmissions: 31043 Accepted: 11066DescriptionInthisproblem
Cfreezhan
·
2013-03-08 21:00
c
算法
归并排序
poj
POJ
2299
Ultra-QuickSort
大意:将无序的序列通过两两交换最少需要几次才能有序。思路:可以证明即数列的逆序对数,于是归并排序求解。#include #include #include #include #include usingnamespacestd; constintMAXN=500010; intn; typedeflonglongLL; LLA[MAXN],T[MAXN]; voidmerge_sort(
Wall_F
·
2013-02-18 14:00
【一题三解】POJ
2299
Ultra-QuickSort (归并排序法)
题目:点击打开链接这个题给出了500000个样例组,数据最大到1E,求这一串序列的逆序数。逆序数的定义不多说,详见线性代数。表示有好几种方法可以解决这个问题,如树状数组、线段树、归并排序等。归并排序是最接近模板法的,因为排序的结构决定了它是在相邻两个数之间进行的比较。很容易MLE的,如果数组开的过大或者过小的话。部分参阅了标准模板。/************************ *Functi
mig_davidli
·
2013-01-24 17:00
离散化+树状数组求逆序数
id=
2299
离散化是一种常用的技巧,有时数据范围太大,可以用来放缩到我们能处理的范围 因为其中需排序的数的范围0---999999999;显然数组不肯能这么大;而N的最大范围是500000;故给出的数一定可以与
acdreamers
·
2013-01-19 14:12
数据结构
离散化+树状数组求逆序数
id=
2299
离散化是一种常用的技巧,有时数据范围太大,可以用来放缩到我们能处理的范围 因为其中需排序的数的范围0---999999999;显然数组不肯能这么大;而N的最大范围是500000;故给出的数一定可以与
ACdreamers
·
2013-01-19 14:00
求逆序数#no
今天做了下POJ
2299
,逆序数的2种方法:1.归并排序法:#include #include #include #include usingnamespacestd; longlongans; intc
XDU_Truth
·
2012-12-08 23:00
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
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
其他