编程算法
文章平均质量分 92
掉下个小石头
jump jump jump...
展开
-
Patricia Trie与Radix Trie的不同
在StackExchange上有这样一个问题—What is the difference between radix trees and Patricia tries?(原问题)。然而,该问题下的回答并没有说明白这俩算法的区别。不仅如此,网上所有的相关资料都认为这俩是一样的,除了名字。Radix Tree关于Radix Tree,可以参考Wikipedia上的讲解。In computer science, a radix tree (also radix trie or compact prefi原创 2021-04-02 11:51:08 · 1280 阅读 · 0 评论 -
等概率随机分配彩票问题
#include <vector>using namespace std;#define bkt_num 10double stat[bkt_num][bkt_num] = { 0 };double func(int i){ double result = 0;}int main(){ for (int i = 0; i < bkt_num - ...原创 2020-03-12 23:17:02 · 450 阅读 · 0 评论 -
跳表代码
跳表根据逐层元素减半的方式,能够对有序链表进行快速的插入,查找,删除等操作。skip_list.h声明#define MAX_LEVEL 8typedef struct Node_s{ int value; struct Node_s *next[1];}Node;typedef struct SkipList_s{ int level; Node *head;}Ski...原创 2020-02-29 17:54:13 · 413 阅读 · 0 评论 -
计算机科学中最重要的32个算法
英文原址:http://www.risc.jku.at/people/ckoutsch/stuff/e_algorithms.html奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提到他做了一个调查,参与者大多数是计算机科学家,他请这些科学家投票选出转载 2017-08-06 17:30:00 · 10463 阅读 · 0 评论 -
[Algorithm] 哈希
华电北风吹 日期:2017-05-30哈希由于其高效的时间复杂度得到了很多的应用。 一、关键字查找 这个应该是Hash最基本的应用了。相比于线查的O(n),BST的O(nlog n)的时间复杂度,Hash仅仅需要O(1)的复杂度。二、完美Hash三、信息指纹 信息指纹的提出刚开始是为了解决搜索引擎遇到的各个网页网址过长的问题,利用Hash的方法,可以将各个网址压缩到一个固定宽度原创 2017-05-30 21:02:30 · 511 阅读 · 0 评论 -
[Algorithm] beam search(集束搜索)
华电北风吹 2017年8月6日beam search是一个普通搜索算法的优化技巧。 拿A*为例来说,在nn维平面中,一个点有3n−13^n-1个邻接点,随着n的增加,需要保存的状态点的个数指数级增加。 如果内存不支持把所有的状态点都给保存了,而还想采用A*算法那怎么办?一个选择就是可以采用beam search的思路,比如说根据适应度函数只保存一半的状态点,或者更少。当然,缺点就是beam s原创 2017-08-06 18:25:32 · 1408 阅读 · 0 评论 -
动态规划问题小结
Andrew Zhang Nov 11, 2017Part I 1-1、一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法 1-2、一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法 Part II 2-1、[HihoCoder]#1038 : 01背包 2-2、[HihoCoder]#10原创 2017-11-12 00:07:35 · 412 阅读 · 0 评论 -
哈希在元素包含测试中的应用
Andrew Zhang Nov 16, 2017一、d-left hashing 以2-left hashing为例,两个相同长度的hash表,T1和T2,分配对应两个hash函数,h1和h2。存储一个key时,分别用两个hash函数h1和h2计算两个位置h1[key]和h2[key],然后看看两个hash table对应位置有没有空,只要任意一个有空就可以将此key放在对应位置。 当采用原创 2017-11-16 23:38:25 · 562 阅读 · 0 评论 -
[转载]有向图的最小生成树,最小树形图
转载: 有固定根的最小树形图求法O(VE): 首先消除自环,显然自环不在最小树形图中。然后判定是否存在最小树形图,以根为起点DFS一遍即可。 之后进行以下步骤。 设cost为最小树形图总权值。 0.置cost=0。 1.求最短弧集合Ao (一条弧就是一条有向边) 除源点外,为所有其他节点Vi,找到一条以Vi为终点的边,把它加入到集合Ao中。 (加边的方法:所有点到Vi的边中权值最小的转载 2016-07-03 01:20:36 · 1827 阅读 · 0 评论 -
回溯法求解背包个数问题
华电北风吹 天津大学认知计算与应用重点实验室 2016-07-03每个背包最大容量20,有N个物品,问至少需要多少个背包才能装完所有的物品? 输入描述: 第一行物品个数N,第二行N个整数,表示各个物品重量。物品个数小于等于10,物品重量小于等于10.解题思路: 回溯法求解。不知道有没有更好的思路。。。#include <iostream>#include <fstream>usin原创 2016-07-03 19:38:17 · 569 阅读 · 0 评论 -
欧拉回路的判断
华电北风吹 天津大学认知计算与应用重点实验室 2016-06-29欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次,称这条回路为欧拉回路。具有欧拉回路的图成为欧拉图。判断欧拉路是否存在的方法 有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是出度=入度。 无向图:图连通,只有两个顶点是奇数度,其余都原创 2016-06-29 22:35:35 · 3130 阅读 · 0 评论 -
poj2342—树形dp
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/9/15poj上一道与动态规划特别像的题目(http://poj.org/problem?id=2342),一个公司要出席一些人员,每个人对应一个活跃度,要求是不能存在直属关系,活跃度最大。参考了别人的博客,很多人说这个是树形动态规划,我个人感觉应该划分到分治法里面(不存在重叠子问题)。 下面是我修改后的代码,采用递归的思路。例如计原创 2015-09-15 16:06:11 · 523 阅读 · 0 评论 -
计蒜客—外卖餐厅的展示(简单)
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/5题目链接: http://nanti.jisuanke.com/t/434解题技巧: 动态规划,状态压缩,完美匹配作为设计师的du熊希望在 N 行 4 列的网格里先行放入若干占 1 行 1 列的正方餐厅广告(障碍物),使得剩下来的空间,可以被占 1 行 2 列或 2 行 1 列的长条餐厅广告完美覆盖。du熊希望让你帮他原创 2015-12-06 17:33:40 · 1002 阅读 · 0 评论 -
计蒜客—跳跃游戏二
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/4题目链接: http://nanti.jisuanke.com/t/20题目类型: 动态规划,广度优先搜索题目描述: 给定一个非负整数数组,假定你的初始位置为数组第一个下标。数组中的每个元素代表你在那个位置能够跳跃的最大长度。你的目标是到达最后一个下标,并且使用最少的跳跃次数。 例如: A = [2,3,1,1,原创 2015-12-04 12:21:00 · 1496 阅读 · 0 评论 -
计蒜客—爱奇异的自制节目
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/5题目链接: http://nanti.jisuanke.com/t/430题目类型: 枚举题目描述: 爱奇艺制作四档节目 W, X, Y, Z;能用的演播室只有A 和B。W 每一期都要在A 来录制,X每一期都固定在 B 来录制。而 Y 和 Z 没有特别的要求,既可以在演播室 A 录制。 W 一共 Ew 期,每期需要原创 2015-12-05 00:41:13 · 593 阅读 · 0 评论 -
动态规划总结
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/7近期学了几个动态规划正好总结一下。里面不涉及具体问题的具体解法,有问题可以参看我的具体类型的讲解博客。目前所见动态规划可以划分为两类:链式和树形。而且这两类中的每个节点都是一个完整的状态集合。一、链式动态规划 链式动态规划的题目类型还是比较多的,例如斐波那契数列求解,最大钢管价值切割,完美覆盖问题,状态压缩动态规划,0/原创 2015-12-07 09:48:53 · 1016 阅读 · 0 评论 -
牛客网—相邻最大差值(桶排序)
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/9题目链接: http://www.nowcoder.com/question/next?pid=425669&qid=25274&tid=2211738题目描述: 请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元素的最大差值。 给定一个整数数组A和数组的大小n,请返回最大差值。保证数组元素个数大于等原创 2015-12-09 10:32:49 · 1086 阅读 · 1 评论 -
数组中缺失的最小正整数
华电北风吹日期:2016/2/24题目链接: https://leetcode.com/problems/first-missing-positive/题目描述: 对一个未排序的数组,找出缺失的最小正整数。 例如,对于数组[1,2,0]返回3;对于数组[3,4,-1,1]返回2。 算法时间复杂度应该为O(n)和常数的空间复杂度。解析: 一、如果数原创 2016-02-24 17:23:47 · 4853 阅读 · 0 评论 -
poj3254:玉米田的种植规划
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/8/28来看POJ3254需要用到状态压缩动态规划题目。 状态压缩的动态规划:实质就是普通的动态规划,只不过每一个状态由一个整数的各个位表示。例如,整数11表示1011这个状态。所以此类表示法仅限于问题排列是01的情况。 POJ3254这个题目需要求农场的种植方案个数问题,每一块农田种或不种用1,0表示即可,因此可以使用状态压缩的原创 2015-08-27 22:14:37 · 1169 阅读 · 0 评论 -
计蒜课—和为M的组合个数
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/12/4题目类型: 背包问题,广度优先搜索,动态规划题目链接: http://nanti.jisuanke.com/t/310题目描述: 在N个数中找出其和为M的若干个数。先读入正整数N(1< N< 100)和M(1< M< 10000), 再读入N个正数(可以有相同的数字,每个数字均在1000以内), 在这N个数中找出原创 2015-12-04 21:30:10 · 1441 阅读 · 0 评论 -
hdu1198—并查集
华电北风吹 天津大学认知计算与应用重点实验室 日期:2015/09/17解决一个问题最重要的部分就是构建数据储存方式。本博客专门用来记录自己遇到的和自己用到的比较有价值的数据存储结构。一、并查集(不相交集) 初始一个和矩阵方格数相等的一维数组,矩阵每个下标代表矩阵每个方块,一维数组每个元素的值代表当前节点的父节点。初始时,每个节点都是根节点(父节点是本身)。这样做的优点: 集合合并的话只需要原创 2015-09-17 15:46:47 · 532 阅读 · 0 评论