• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
qianye0905
博客园    首页    新随笔    联系   管理    订阅  订阅
2013年5月2日
Bloom filter/Bitmap
摘要: 使用范围:实现数据字典,进行数据的判重,集合求交集基本原理:基于bitmap,bitmap中用一个bit位来表示一个数字,而Bloomfilter是用多个bit位是否同时存在来判定元素是否存在。它的实现用到了位数组和k个hash函数,存入一个元素时,用k个hash函数分别求值,并将相应的bit位置1,当查找的时候,根据k个hash值,到k个位置查找,如果k个位置都存在,表明该元素存在,如果有一个bit位不存在表明元素不存在。很明显这个过程并不保证查找结果是百分百正确。同时它也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动其它的关键字,一个简单的改进是使用countingbloom 阅读全文
posted @ 2013-05-02 22:55 qianye0905 阅读(798) 评论(0) 推荐(0)
积水问题
摘要: 有这样一块土地,可以被划分为M*N块正方形小块,每块面积是一平方英寸,第i行第j列的小块可以表示成P(i,j),这块土地高低不平,每一小块地P(i,j)都有自己的高度H(i,j),一场倾盆大雨后,由于这块地地势高低不同,许多低洼的地方都积存了不少降水,如果已经知道了这块土地的详细信息,求出它最多能积存多少立方英寸的降水分析:先分析一些比较容易求出的格子,例如边界,边界上积水上一定为0,从边界上最低的格子x开始,它就像是一个有洞的水桶,桶的容量取决于最低的那个洞,假设这个格子的高度为h,那么它相邻格子y的水位不会超过h,如果y的高度小于h,那么y的水位将是h,可以继续对y周围的格子进行灌水,直到 阅读全文
posted @ 2013-05-02 22:53 qianye0905 阅读(346) 评论(0) 推荐(0)
poj 1806
摘要: poj 1806题意:已知有n种货币,编号为1~n,以及它们之间的瑞换比例。现在Nick有第fir种货币meney元,问你Nick能不能通过这些货币的瑞换规则,使自己拿到更多的fir货币。思路:bellman_ford。判断有没有正环,有的话Nick就可以无限次使用这个正环使自己的货币增值。 1 /** 2 * @file code.c 3 * @author <kong@KONG-PC> 4 * @date Sun Nov 04 21:54:40 2012 5 * 6 * @brief 求汇率转换问题 7 * 采用Bellman_ford算法求是否存在... 阅读全文
posted @ 2013-05-02 22:50 qianye0905 阅读(224) 评论(0) 推荐(0)
动态规划求RMQ(区间最值问题Range Minimum/Maximum Query)
摘要: 求RMQ最简单的方法是遍历区间,时间复杂度O(n), 但是当查询次数很多的时候,时间效率并不高。可以用线段树把算法优化到O(logn) (在线段树中保存线段的最值),不过sparse_table算法是较好的,用O(nlogn)的时间进行预处理,然后用O(1)时间进行查询。预处理:预处理使用DP的思想,f(i, j)表示[i, i+2^j - 1]区间中的最小值,我们可以开辟一个数组专门来保存f(i, j)的值。例如,f(0, 0)表示[0,0]之间的最小值,就是num[0], f(0, 2)表示[0, 3]之间的最小值, f(2, 4)表示[2, 17]之间的最小值注意, 因为f(i, j)可 阅读全文
posted @ 2013-05-02 22:48 qianye0905 阅读(739) 评论(0) 推荐(0)
树的公共祖先问题LCA
摘要: 树的公共祖先问题可以分为在线法和离线法,在线法就是来一个请求就处理一次,离线法就是收集所有请求然后统一给出回复。1. 在线法。LCA可以转换为RMQ1) 对树进行dfs,访问每个节点时要记录节点的层次,同时要记录每个节点第一次出现的位置,对于节点个数为n的树,最后会形成一个2n-1长度的序列2) 如果要查询节点a和节点b的公共祖先,只需找出a和b节点在在序列中第一次出现的位置,形成了一个从a到b的子序列, 对应序列中层数最小的节点即为公共祖先。3) 因此把LCA转化为RMQ问题。对于给定序列求出指定区间中的最小值 1 #include <stdio.h> 2 #include &l 阅读全文
posted @ 2013-05-02 22:46 qianye0905 阅读(335) 评论(0) 推荐(0)
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3