Olympiad in Informatics Beginners' Home's Archiver

SDJL 发表于 2008-11-19 11:17 AM

问大家两个算法问题

题目来源算法导论14.1-7和14.1-8,
14.1-7:
说明如何在O(n*lgn)时间内,利用“顺序统计树”统计大小为n的数组中的逆序对?
说明,如果a数组中i<j且a[i]>a[j],则a[i]和a[j]为一对逆序。
无论用什么方法都可以,只要时间上届为O(n*lgn)

14.1-8:
现有一个圆上的n条弦,每条弦都按其端点来定义,请给出一个能在O(n*lgn)时间内确定圆内相交弦的对数的算法,假设任意两条弦都不会共享端点。

想了一会,没想出来,所以上来问问大家 : )

吴豪 发表于 2008-11-19 12:29 PM

第一个问题用归并排序就好了

Agnimon 发表于 2008-11-19 01:08 PM

还是用树状数组吧,程序短,还支持logn的更改唷,真实惠

吴豪 发表于 2008-11-19 01:20 PM

[b] [url=http://www.oibh.org/bbs/redirect.php?goto=findpost&pid=320975&ptid=27205]3#[/url] [i]Agnimon[/i] [/b]
离散化成nlgn还是要排序,感觉有兜圈子的嫌疑。。。= =

SDJL 发表于 2008-11-19 01:30 PM

归并排序?给点提示

页: [1]


Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.