
基础数据的超进化
文章平均质量分 84
逐梦起航-带梦飞翔
为了更加长远的快乐!
展开
-
树状数组—求第k小的数—入门详解
第k大的数有太多的方法来求了,这是一个十分基础的问题,可以由很多种数据结构来完成。常用的有排序、主席树……。今天我要介绍一种更快更简洁的算法(Duang!)——树状数组。哦?它也可以求第k大?它不是只用于求区间和的算法吗?怎么还可以用来求大小关系?哈哈,一会就让你大开眼界。思路建一个权值树状数组。何为权值树状数组?大家有没有听说过权值线段树?权值线段树就是记录同数值的数的个数的线段树。例如有3,5...原创 2018-04-17 19:47:22 · 2632 阅读 · 3 评论 -
树状数组—求第k小的数—离散化
树状数组也求第k小的数(不会?)虽然码量小,速度快,但有缺点。因为它建的是权值线段树,所以如果权值太大,它就无法正常运作。有一种方法可以解决零散的大数,那就是离散化。本篇文章就来介绍一下用离散化优化其空间的树状数组。思路把所有数离散化,该离散化只需要能保留数字排名的前后即可,对区间信息等不作要求。离散之后,按照离散后的权值插入树状数组,用这个树状数组就可以求出第k小的数的离散值了,实际值再转换一下...原创 2018-04-21 13:05:09 · 889 阅读 · 0 评论 -
Floyd—求最小环
例题(hdu 1599 Find the Mincost Route)Problem Description杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须满足K>2,就是说至除了出发点以外至少要经过2个其他不同的景区,而且不能重复经过同一个景区。现在8600需要你帮他找一...原创 2018-05-31 14:00:59 · 401 阅读 · 0 评论 -
不完全排序求第k小
题意求第k小的数题解排序中求解,但只需部分排序,时间复杂度O(n)。正常做法是把序列拍个序,然后直接输出位置为k的即可。但实际上没有必要使所有子序列都有序,只要让包含第k小的数的序列有序即可。以快速(二分)排序为例,每次选取一个值,进过一波操作后,y左边的数小于它,x右边的数大于它,x和y之间的数(有的话)已经有序了。据此,写出代码。代码#include<cstdio>#includ...原创 2018-07-14 08:15:49 · 348 阅读 · 0 评论