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
POJ
2299
只要理清逆序数的思想,再套上归并算法的模板再注意点longlongsum。不能用int就ok了。
wuyanyi
·
2011-07-09 08:00
c
算法
user
System
ini
merge
2299
归并排序
#includeusingnamespacestd;#definemax5000005intn,a[max],t[max];longlongsum;voidMerge(intx,intmid,inty){ intp=0; inti=x,j=mid+1; while(ia[j]) { t[p++]=a[j++]; sum+=mid-i+1;//why?因为如果a[i]>a[j]的话,
youngyangyang04
·
2011-05-24 21:00
poj
2299
逆序数树状数组
(1)用结构体存每个数的数置和它的值,structcnode{intvalue,intpos}; (2)pos位置取负再加上MAXN+1,MAXN(是元素位置的最大值),(3)排序:先按value从小到大排,再按pos从小到大排,剩下的就是求每个元素左下角的元素个数,交给树状数组来处理是再好不过的事了。#include#include#include#includeusingnamespacest
paul08colin
·
2011-04-25 17:00
struct
tree
Integer
input
insert
sorting
树状数组题目
先提个注意点,由于Lowbit(0)=0,这会导致x递增的那条路径发生死循环,所有当树状数组中可能出现0时,我们都全部加一,这样可以避免0带来的麻烦~~ 简单: POJ
2299
Ultra-QuickSort
shahdza
·
2011-04-13 12:00
nlogn求逆序数 POJ
2299
解题报告
前几天自己想出了利用归并排序求逆序数的方法,找了一个求逆序数的题
2299
交了300++MS水过...
xinghongduo
·
2011-03-29 11:00
Algorithm
Integer
delete
input
output
sorting
归并排序poj
2299
Ultra-QuickSortTimeLimit: 7000MS MemoryLimit: 65536KTotalSubmissions: 19252 Accepted: 6828DescriptionInthisproblem,youhavetoanalyzeaparticularsortingalgorithm.Thealgorithmprocessesasequenceofndistinc
dongfengkuayue
·
2011-03-25 21:00
Integer
Arrays
input
merge
n2
sorting
POJ
2299
解题报告
题目链接这道题目的关键因素就在于理解“相邻”这个概念,否则题目的第一个例子的最小交换次数应该为2:49,然后0交换。根据这种理解,可以把该问题抽象出来:其实是为了求解逆序数(这个链接中也含有该题的源代码,稍微改改就能用)。如果采用简单的比较来进行查找,肯定会超时,因此引入了归并排序的思想,借用算法导论中的话,“可以简单的把归并排序的合并操作理解为两堆已经排好序的扑克,均为面朝上,每次从两堆中选取较
hitrose27
·
2011-03-18 18:00
算法
merge
zoj 2386 || poj
2299
Ultra-QuickSort
我晕,这个我没有写题解么。。忘了。。 求逆序数。。。 白皮书上有,用的归并排序,今天又看了算导的归并排序,写了下,过了。 因为这个题在树状数组的分类下的,所以尝试用树状数组做。想了会。。。 因为数的范围很大,不过个数只有50W,所以就排下序,重新编数,这个据说叫离散化==。。。 编数之后,求这个数之前比这个数大的,不过用树状数组的话求比它小的值是比较容易的,那么就把数离散化的时候从大到小排序,然后
zxy_snow
·
2011-03-17 23:00
poj
2299
Ultra-QuickSort 树状数组
poj
2299
Ultra-QuickSort树状数组求逆序对数,树状数组数据范围较大,要离散化。给每一个数据一个id,第i个数据的id为i。
hehexiaobai
·
2011-03-16 20:00
POJ
2299
Ultra-QuickSort 归并排序求逆序数对
id=
2299
归并排序,同时求逆序数对。 第一次写归并排序,其实还是蛮简单的。 在归并排序中加多一句话便可以同时求出逆序数对的数目。 思路如下: 假设a、b两个相邻的已排序的区间。做归并排序。
Human_CK
·
2011-03-11 10:00
c
BI
gvim不能显示中文菜单
新安装的DebianSqueeze,普通用户使用gvim时,会出现(gvim:
2299
):Gtk-WARNING**:Invalidinputstring(gvim:
2299
):Gtk-WARNING*
changfengxiongfei
·
2011-02-27 09:00
2299
-Ultra-QuickSort-交换相邻两个数排序-求逆序对个数-合并排序
此题跟1804-Brainman相似,不过数据更强了。1840可以用暴力求解(时间为O(n^2)),而这道则不行。 题意:给出一组数,通过不断交换两个相邻的数,可以使这组数按非递减顺序排列。问,最小的交换次数是多少?分析:设一组数存储在A[](初始状态),若A[i]>A[i+1],则交换这两个数。这一操作只会使逆序对个数减少1,对于这两个数左右两端的逆序对个数没有影响。如此,不断地交换这样的两个相
lihao21
·
2011-02-12 14:00
存储
merge
n2
poj
2299
——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#
pku上的数据结构题
数据结构(1)串 (poj1035,poj3080,poj1936)(2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj
2299
)(3)简单并查集的应用.
kenby
·
2010-12-09 19:00
数据结构
算法
poj
2299
1804 2085 求逆序对
关于逆序对的总结:poj
2299
输入一个字串求逆序对个数: 思路:主要是利用归并排序,中间加入计数器,就可以了,注意使用scanf,printf减少输入输出时间,结果用__int64保存。
guoqiangma
·
2010-11-30 20:00
iostream
merge
DBLink中CLOB字段的处理
PROD_INTERRUPTION_MODE@LINK2SERVER516 WHERE ROWNUM<=10”,其中“TRANSFORM_CHANGE_CONTENT”为CLOB字段,则会报“ORA-
2299
kinkding
·
2010-10-21 09:00
数据结构
poj
2299
Ultra-QuickSort
////poj
2299
Ultra-QuickSort归并排序/*题解:逆序数,仅此而已。。PS:水题,还是写了半个小时。
birdforever
·
2010-09-21 21:00
[置顶] 树状数组 OJ题目大汇总----czyuan原创
先提个注意点,由于Lowbit(0)=0,这会导致x递增的那条路径发生死循环,所有当树状数组中可能出现0时,我们都全部加一,这样可以避免0带来的麻烦~~ 简单: POJ
2299
Ultra-QuickSort
yrhsilence
·
2010-08-07 15:00
apple
c
struct
tree
mobile
Matrix
POJ
2299
Ultra-QuickSort【树状数组+离散化】
POJ
2299
Ultra-QuickSort【树状数组+离散化】求逆序数,N个数,N 2 #include 3 #define M 500001 4 using namespace std; 5 int
为生存而奔跑
·
2010-08-02 08:00
POJ_
2299
(归并排序)
#include#include#includeusingnamespacestd;constintMAX=500001;intvalue[MAX];inttemp[MAX];__int64result=0;voidmerge(intleft,intmid,intright){intk=0;inti=left;intj=mid+1;while(i>1;mergeSort(left,mid);mer
CNnumen
·
2010-07-30 13:00
include
merge
TOJ
2299
. Electricity【求无向图割点】
/*给出一个无向图,计算去掉一个点后所能得到的最大块数 *1)由于图可能不连通,先DFS求出图的块数num *2)然后进行DFS求出割点并且存下割点将连通分支分成的块数f[i] *3)找到最大的f[i]和num相加-1即为所求 */ Code:#include#include#include#defineMAXN10002usingnamespacestd;intf[MAXN],low
ji414341055
·
2010-07-24 02:00
Poj-
2299
[用归并排序求逆序数的个数]
下例为POJ上
2299
题,用的是归并法求逆序数的个数:/** 题目的意思就是要求冒泡排序的交换次数。 所用的算法:用归并排序,求逆序数的个数。
morgan_xww
·
2010-07-17 23:00
算法
merge
n2
poj
2299
Ultra-QuickSort
id=
2299
归并排序,在"归并"时计算逆序数的个数.ret+=mid-first1+1; #include#includeusingnamespacestd;#defineMAX500000__int64ret
SMCwwh
·
2010-07-16 09:00
merge
PKU 1007 DNA Sorting/
2299
Ultra-QuickSort
PKU1007DNASorting/
2299
Ultra-QuickSort问题:http://acm.pku.edu.cn/JudgeOnline/problem?
A Za, A Za, Fighting...
·
2010-07-04 10:00
POJ_
2299
树状数组版
这题用树状数组比归并排序快很多啊~~~一个是500多一个2000多。这题用树状数组,主要有两点I.离散化,把n个数映射到1-n里面,不然内存不够,II.求一个数组的某一个数据的前面所有数据中比它小(或大)的所有数的个数对于第一个,我们可以用一个struct,然后里面存两个信息,一个是val,一个是no,其中val是输入的数,no是用来离散化的。对于第二个,很多人说是树状数组的基本功了,但是我觉得看
klion26
·
2010-05-29 17:00
POJ_
2299
归并排序版
这题是看树状数组是看到的,博客作者说这个可以用归并排序,于是就写了下,发现还好。对于数组a,归并排序时的合并阶段,分成两段,也就是(start,mid)和(mid,end)(我这里第一段的下标是从start到mid-1,第二段的下标是从mid到end-1)。用三个下标分别指向前面一段(i),后面一段(j),和新数组下标(idx).那么当出现num[j] 7using namespace std;
klion26
·
2010-05-27 12:00
POJ.
2299
Ultra-QuickSort【树状数组+离散化】
POJ.
2299
Ultra-QuickSort【树状数组+离散化】一个求逆序对的题,N个数,N 2 #include 3 #define M 500001 4 using namespace std;
M.J的blog
·
2010-05-03 17:00
poj
2299
递归与分治策略
package hard; import java.io.BufferedInputStream; import java.util.Scanner; /** * poj
2299
200830740306
·
2010-04-02 23:00
J#
将大值数据离散化做法
一种离散化方法(frompoj
2299
);离散化是一种常用的技巧,有时数据范围太大,可以用来放缩到我们能处理的范围; 此题是求逆序数;可以用归并排序,也可以用树状数组,但是树状数组就得离散化了;因为其中需排序的数的范围
hkdgjqr
·
2010-03-25 21:00
struct
存储
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-sort可以转成求逆序数。如果规模比较小,求逆序数可以用冒泡的方法做,简单。还可以用归并排序做,先分别求左右两部分的逆序数,两部分都排好序后再求两者之间的逆序数。
jollyjumper
·
2010-02-27 14:00
2010年02月08日星期一.sgu180 && pku
2299
归并排序求逆序对
2010年02月08日星期一.sgu180&&pku
2299
归并排序求逆序对2010年02月08日星期一.sgu180归并排序求逆序对归并排序求逆序对举例说明:在归并排序合并两个有序链时i为第一链的指针
Why so serious? --[NKU]schindlerlee
·
2010-02-08 23:00
PKU
2299
-求逆序数的题-实现(归并排序和树状数组)
通过这个题,复习了归并排序的实现,同时了解了归并排序在求数组逆序数方面的一个应用,同时也第一次学习了树状数组 题目大意:很直接的题目描述,题目输入一个数组,数组元素的大小在0->999.999.999的范围内,元素个数为0-500000范围。题目要求通过相邻的元素的交换,使得输入的数组变为有序,要求输出交换的次数?例如:输入91054,把他变成01459,要经过多少次交换。 思路1:题目要求求出总
suwei19870312
·
2010-02-06 10:00
数据结构
算法
struct
存储
input
merge
一个计算题
A. 1 B. 5099 C. 9799 D.
2299
这个好像是那里的公务员考试题目,咋一看,好像答案也许是B哦。可是仔细看看不对哦,中间都是乘号,估计考生带上计算器也算不出个正确结果。
yexin218
·
2010-01-12 23:00
C++
c
python
C#
一个计算题
A. 1 B. 5099 C. 9799 D.
2299
这个好像是那里的公务员考试题目,咋一看,好像答案也许是B哦。可是仔细看看不对哦,中间都是乘号,估计考生带上计算器也算不出个正确结果。
yexin218
·
2010-01-12 23:00
C++
c
python
C#
一个计算题
A. 1 B. 5099 C. 9799 D.
2299
这个好像是那里的公务员考试题目,咋一看,好像答案也许是B哦。可是仔细看看不对哦,中间都是乘号,估计考生带上计算器也算不出个正确结果。
yexin218
·
2010-01-12 23:00
C++
c
python
C#
POJ
2299
Ultra-QuickSort
POJ
2299
Ultra-QuickSort题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?
ACTime
·
2009-12-17 14:00
POJ
2299
逆序对的程序并没有错,错的是res的类型。下一次一定记得是longlong了 #include#defineF(i,a,b)for(inti=a;i<=b;i++)usingnamespacestd;intn[500002],c[500002],N;longlongmergesort(intl,intr){longlongret=0;if(l
AllenLSY
·
2009-12-01 16:00
P
2299
P
2299
逆序对,归并排序统计一下.这题我是真的wa哭了..以前没写过归并排序.虽然知道思路..这次就真的写尴尬了..搞到最后专门去找别人代码看来开去都没发现自己哪写错了..终于..最后发现了.....
巢穴
·
2009-10-20 17:00
poj 2117 Electricity tju
2299
Electricity
poj2117Electricitytju
2299
Electricity如果n==1结果就是0//wa一次如果m==0结果就是n-1//wa一次其他的情况:看看割点去掉后,能有几个联通分量,也就是割点有几个儿子
MemoryGarden's Blog
·
2009-10-08 17:00
HDOJ2009暑期集训内部赛(5)
field=problem&key=HDOJ2009暑期集训内部赛(5)&source=1
2299
LargestTriangle——ac。 计算几何的题目,不算难吧。
zixiaqian
·
2009-08-12 14:00
pku
2299
pku
2299
#includeusing namespace std;#define MAXN 500000int x[MAXN+1];int z[MAXN+1];__int64 reverse;void
wyiu
·
2009-07-12 14:00
ACM
2299
Ultra QuickSort 合并排序的应用
题目是快速排序,可用的居然是合并排序,排序中计算逆序数即可。。。#include #include #include #include using namespace std;long long int count;void Merge(long long int a[],long long int p,long long int k,long long int q){ long long
啥也别说了
·
2008-11-30 00:00
_beginthreadex : undeclared identifier解决办法
e:/_te$t/test/main.cpp(
2299
):errorC2065:'_beginthreadex':undeclaredidentifier原因就
BeyondHaven
·
2008-09-28 16:00
多线程
c
P
2299
1 //
2299
Accepted 3732K 391MS C++ 1446B PKU 2 3 //归并排序 4 5 #include 6 #include 7 #include 8 9
我希望你是我独家记忆
·
2008-09-23 18: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
多线程开发,'_beginthreadex' : undeclared identifier
e:/_te$t/test/main.cpp(
2299
):errorC2065:'_beginthreadex':undeclaredidentifier原因就
badboyfind
·
2007-11-05 12:00
多线程
c
Base64编码及解码程序源代码
defined(AFX_BASE64_H__8D85F486_CD10_4A0A_A689_
2299
C9DE52CB__INCLUDED_)#defineAFX_BAS
zhaoyawei
·
2006-04-20 11:00
c
File
Class
interface
上一页
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
其他