摘要: HDU1997 题意:排列汉诺塔需要的最小步数是2^N-1 排列过程中会生成2^N个排列,判断一个序列是否发生了额外的移动步数,也就是完成汉诺塔话费的步数多余2^N-1. 模拟法: 1:在正确的排列中,最大的n盘一定在a或c柱上,否则false 2:如果n在a柱上,剩下n-1个盘处在a->b的过程中 阅读全文
posted @ 2017-05-21 09:49 小螺号打豆豆 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 卡特兰数是组合数学 常见的数列 主要有4种形式: 1: h(n)= C 2n n /(n+1) 2: h(n)= C 2n n - C 2n n-1 3: h(n)= h(n-1)*(4*n-2) /(n+1) 4: h(n)= h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)* 阅读全文
posted @ 2017-05-20 19:48 小螺号打豆豆 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 虚函数的起源是:想用基类指针管理该基类的所有继承类。 当基类指针指向继承类对象时,如果函数不是虚函数,调用的是基类的成员;如果函数是虚函数,调用的是继承类的成员。 为了实现多态,虚函数是必须的。如果析构函数不是虚函数,基类指针调用析构函数 就只会调用基类的析构函数,仅仅释放了基类的空间造成内存泄漏。 阅读全文
posted @ 2017-05-15 09:57 小螺号打豆豆 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 简单字符串hash,通过对字符串每个位置进行加权运算,使得后面每个字符的hash值都受前面字符的影响,从而将多个字节的字符串转化为整数,但有时会发生冲突。 关键部分:seed权值,通常是质数,如果太小发生冲突的概率会大大增加。 具体代码: HDU4821MAP+HASH #include<cstdi 阅读全文
posted @ 2017-05-04 11:32 小螺号打豆豆 阅读(182) 评论(0) 推荐(0) 编辑
摘要: hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据. 把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出 阅读全文
posted @ 2017-05-04 11:11 小螺号打豆豆 阅读(635) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/ziyi--caolu/archive/2013/01/01/2841548.html 写KMP的不错的博客。 KMP算法,是字符串匹配O(N)的算法,和朴素字符串匹配的区别在于:匹配失败时会跳过已知不可能匹配的位置。 朴素字符串匹配: 原串S=abab 阅读全文
posted @ 2017-05-04 10:46 小螺号打豆豆 阅读(154) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/ziyi--caolu/archive/2012/12/13/2816279.html (参考) 附我的代码: /****HDU2846 *构造 字典树 的方法 *字符串匹配 *STRING S=X1X2X3X4... *X1... +X2...+X3. 阅读全文
posted @ 2017-04-27 20:49 小螺号打豆豆 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 字典树,又称trie树,主要用来统计字符串的前缀等等 HDU1671 and POJ 3630 题意是:输入的n串数字中 如果一个串 是 另一个串的前缀,则 YES 建立字典树,标记每个节点的状态:是儿子吗?是终点吗?如果在插入节点时遇到了终点 则包含,如果终点是儿子 则包含。 在添加的过程进行判断 阅读全文
posted @ 2017-04-27 18:49 小螺号打豆豆 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 算法核心思想:贪心 给定一个带权图,求连通所有节点所需的最小权和 n个节点,需要连n-1条边,这些边的权值都是尽量小的,所以连最小生成树从边权最小的开始连 1:将边按照权从小到大排序(或者不排序,只要能顺利的拿到权最小的那条边就行) 2:每次选定权最小的边 连,这条边一旦导致成环就必须舍弃掉, 3: 阅读全文
posted @ 2017-04-15 20:14 小螺号打豆豆 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 题意:给n个点,m条边,和每条边的权值,求从s点到e点 路径 权差 的最小值,即边权值最大的减去最小的。 原始最小生成树可以做的:求连接图所有节点 的最小权值和。 kruskal算法使用的结构:并查集,对边权排序。 kruskal算法的实现过程: 1:输入边,权 2:对权 从小到大 排序 3:按权值 阅读全文
posted @ 2017-04-15 20:00 小螺号打豆豆 阅读(134) 评论(0) 推荐(0) 编辑