
C++算法
YongjieShi
cnblog地址:http://www.cnblogs.com/yongjieShi/
展开
-
计算逆序对数
计算逆序对数的程序描述:一个长度为N的整数序列A,满足i<ji<j,Ai>AjA_{i}>A_{j},的对数(i,j)称为整数序列A的一个逆序对,求出整数序列A的所有的逆序对数输入:输入包含多组测试数据,每组测试数据包含两行,第一行为整数N(1<=N<=20000),当输入0时结束,第二行为N个整数,表示长度为N的整数序列输出:每组数据对应一行,输出逆序对的个数样例输入51 2 3 4 555原创 2017-01-02 15:48:07 · 1086 阅读 · 0 评论 -
Butterfly
Butterfly问题描述:有一群旅行爱好者,有一天,他们带回了n只蝴蝶回来。他们相信每一只都属于两个不同种类中的一种,为了讨论方便,我们称它们为A与B。他们想把n只标本分成两组——一些属于A且一些属于B——但是直接标记任何一个标本对于他们是非常困难,因此他们决定采用下面的方法。对每对标本i和j,他们细心地把它们放到一起研究。如果他们以自己的判断足以确信,那么他们把这对蝴蝶标记为“相同”(这意味着他原创 2017-01-07 16:49:45 · 1377 阅读 · 0 评论 -
股票买卖
题目描述最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了某只股票在未来 N 天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。现在,阿福想知道他最多可以获得多少利润。原创 2017-01-08 00:57:51 · 1522 阅读 · 0 评论 -
Dynamic Median
题目描述:设计一个数据结构,初始为空,支持以下操作:(1)增加一个元素,要求在log(n)时间内完成,其中n是该数据结构中当前元素的个数。注意:数据结构中允许有重复的元素。(2)返回当前元素集合的中位数,要求在常数时间内完成。如果当前元素的个数为偶数,那么返回下中位数(即两个中位数中较小的一个)。(3)删除中位数,要求在log(n)时间内完成。输入输入的第一行是一个自然数T,代表测试数据的组数((1原创 2017-01-08 18:01:49 · 1196 阅读 · 0 评论