
【知识&&算法&&技巧】
文章平均质量分 53
Gijkstra
Can we do better?
展开
-
RMQ (Range Minimum/Maximum Query)算法(查询区间最值)
转自http://blog.youkuaiyun.com/niushuai666/article/details/66246721. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),转载 2017-04-27 19:23:17 · 326 阅读 · 0 评论 -
搞懂树状数组一维(转), 二维(原创)
引用请注明出处:http://blog.youkuaiyun.com/int64ago/article/details/7429868 写下这个标题,其实心里还是没底的,与其说是写博帖,不如说是做总结。第一个接触树状数组还是两年前,用什么语言来形容当时的感觉呢?……太神奇了!真的,无法表达出那种感觉,她是那么的优雅,10行不到的代码,却把事情干的如此出色!没有了解她原理的前提下即使把转载 2017-04-20 20:57:51 · 531 阅读 · 0 评论 -
线段树(单点更新+区间更新)
转自http://blog.youkuaiyun.com/zip_fan/article/details/46775633线段树的两种基本用法:单点更新和区间更新(又叫成段更新)。 首先线段树它是一棵高度平衡的二叉树,那么很多二叉树的性质它是完美继承的,比如用数组去模拟的话,父节点的下标*2=左儿子的下标,父节点的下标*2+1=右儿子的下标。而这个性质也在线段树的实现中得到了很好的运用(转载 2017-04-28 16:18:58 · 327 阅读 · 0 评论 -
关于memcpy的用法
函数原型void *memcpy(void*dest, const void *src, size_t n);功能由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。注意:这里是n个字节,如果要复制int型的数组,这里应该n*4原创 2017-06-25 10:49:32 · 217 阅读 · 0 评论 -
差分约束(个人理解)
最近写最短路遇到了差分约束问题,特此总结一下; 差分约束(1)求最大值,则不等式统一转化为(2)求最小值,则不等式统一转化为>=的形式,利用最长路,即可求出最小值;分析:利用最短路,即可求出最大值;>=时,图中存的每个边都是约束条件的最小值,故直接利用最长路,即可求出最小值;特殊情况: A+B=C时,可在图中分别存入两个不等式A+B>=C与A+原创 2017-03-03 17:03:32 · 469 阅读 · 0 评论 -
字典树
最近开始搞字典树,在此写下自己的见解,顺便存一下板子,难免会有错误和疏忽,欢迎大家指正字典树就像他的名字一样,字典,即存下所有出现过的数据,然后对查找进行优化比如:给出一个长度为n的数组,在里面查找x,时间复杂度为O(n),把数都存在字典树中,存储时间复杂度O(logx),查询时间复杂度O(logx),此外字典树还可以实现一些其他的功能,比如记录相应位置出现的次数,记录深度等。原创 2017-10-21 10:31:19 · 240 阅读 · 0 评论 -
newcoder Wannafly挑战赛6 B-比赛(枚举子集)
题目描述你在打比赛,这场比赛总共有12个题对于第i个题,你的队伍有a[i]的几率解决她如果解决不了她呢?由于所有人讨论的都很大声所以你有b[i]的概率从左边那个队那里听会这个题的做法有c[i]的概率从右边那个队那里听会这个题的做法请问最终你们队伍解出0-12题的概率分别是多少输入描述:第一行12个数表示a[1] -> a[原创 2017-12-23 10:10:28 · 286 阅读 · 0 评论 -
扩展欧几里得
在此写下我对于扩展欧几里得的见解,可能有错误,评论区指正,我看到就会改裴蜀定理推论:a,b互质的充要条件是存在整数x,y使ax+by=1,那么由a,b互质,一定存在x,y,满足等式ax+by=1扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足等式: ax+by=gcd(a,b)ax+by = gcd(a, b)朴素欧几里得算法:gcd(a,b)=gcd(b,agcd(a,b)=gcd(原创 2017-10-23 11:21:05 · 1147 阅读 · 0 评论