
算法与数据结构
以例题讲解算法与数据结构
你是我的星冰乐
这个作者很懒,什么都没留下…
展开
-
非负权单源最短路--Dijkstra
垃圾水题,浪费时间!oj位置Description给一个n( 1 <= n <= 2500 )个点,m条边( 1 <= m <= 6200 ) 的无向图,求s到t的最短路。Input第一行四个由空格隔开的整数 n、m、s、t。之后的m行,每行三个正整数 s[i]、t[i]、wi,表示一条从s[i]到...原创 2019-05-11 20:38:26 · 229 阅读 · 0 评论 -
快速幂
快速幂与快速幂取模+简单例题算法讲解快速幂对于$a^{b}$,假设为$2^{10}$将10写成2进制:那么不管权值是0还是1,算法中2的多少次方是需要不断累加的,前面乘以0或1表示这个数要不要(任何一个数都可以由若干个2的多少次方组成)b & 1,也就是将b与1按位与,因为1的二进制是1,也就是说b除了最后一位,其...原创 2019-05-14 14:55:40 · 321 阅读 · 0 评论 -
树状数组
这个博客写的很详细,有些原理的地方可以跳过,以后找个时间自己整理吧原创 2019-05-28 19:24:58 · 85 阅读 · 0 评论 -
二分--最大值最小、最小值最大
二分的一个很简单的应用,我太菜了。。。。安排房间传送门Description在一条街道上面,有n个房间,第i个房间在x[i]的位置,现在要给m个人安排房间,如果他们住的太近,就会打架,所以我们需要找出一个距离,使任意两个人之间的最小距离尽可能的大,那么,这个最大的最小距离是多少呢?Input第一行用空格分隔的两个整数n和m...原创 2019-05-14 13:54:49 · 661 阅读 · 0 评论 -
尺取法+例题
尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案. 一般用于求取有一定限制的区间个数或最短的区间等等. [注]: 在对所选取区间进行判断之后,我们可以明确如何进一步有方向地推进区间端点以求解满足条件的区间,如果已经判断了目前所选取的区间,但却无法确定所要求解的区间如何进...原创 2019-06-02 15:44:12 · 185 阅读 · 0 评论 -
最长上升子序列LIS
三种方法:dp、贪心+二分、树状数组维护LIS序列不一定唯一,但是长度是唯一的dp($n^{2}$)F[i]代表以A[i]结尾的LIS的长度状态转移:$F[i]=max(F[j]+1,F[i]) \quad 1<=j<i$边界处理:$F[i]=1 \quad 1<=i<=n$#include &...原创 2019-05-28 19:24:58 · 111 阅读 · 0 评论 -
单调队列
1.例子 我们先讲单调队列在干嘛。 数列为:6 4 10 10 8 6 4 2 12 14,N=10,K=3;我们要构造一个长度为K的单调递减队列: 首先,将6和它的位置0放入队列中,用(6,10)表示,每一步变化如下:插入6:(6,0);插入4:(6,0),(4,1);插入10:(10,2);插入第二个10,保留后面那个...原创 2019-04-11 20:37:40 · 97 阅读 · 0 评论 -
动态规划--初级
Those who can not remember the past are condemned to repeat it ! 用动规的思想去想问题 and 设计状态转移方程Content:[toc]1.What is the DP? 和分治法一样,动态规划(dynamic programming)是...原创 2019-04-07 15:27:48 · 97 阅读 · 0 评论