摘要: 题目大意:给你n个数,要求输出其中前1,3,……,2k-1个数的中位数题解:第一个中位数是第一个数,每次读两个数,若一小一个大,那么不变;若大大,中位数变成比他小的最大数;反之,中位数变成比他大的最小数。然后可以用一个大根堆和一个小根堆维护(代码中small为比现中位数小的数,即大根堆;big为比现 阅读全文
posted @ 2017-12-10 20:18 Memory_of_winter 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有30000个船,第i个船在第i列,两个操作,M:把第i列的船整体拼到第j列船后,C:求第i和第j个船之间的船的个数题解:可以想到用并查集,在基础的并查集上增加路径,用num数组存第i个船到队首的距离,用len存这一列的船的个数。问题主要在路径压缩上维护num数组上。可以在find的过程中 阅读全文
posted @ 2017-12-10 15:54 Memory_of_winter 阅读(180) 评论(0) 推荐(0) 编辑