随笔分类 - 算法学习
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 摘录于互联网,原创作者redraiment,很详细的二分图匹配入门资料! 2063 过山车 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女...
阅读全文
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 摘录于互联网,原创作者redraiment,很详细的二分图匹配入门资料! 2063 过山车 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女...
阅读全文
摘要:引言 关于什么是母函数,以及母函数的用途,为什么整数划分可以使用母函数解决,请看 http://hi.baidu.com/syxcs123/blog/item/6f8090455f36058cb2b7dc14.html 分析 * 计算整数n的所有划分方法 * 通过母函数模板来计算整数划分, * 多项式:(1+x+x^2+x^3+x^4+x^5+......
阅读全文
摘要:摘录自互联网!1基本输入输出:(1)JDK1.5.0新增的Scanner类为输入提供了良好的基础,简直就是为ACM-ICPC而设的。一般用法为:import java.io.* import java.util.* public class Main { public static void main(String args[]) { Scanner cin = new Scanner(new BufferedInputStream(System.in)); } } 当然也可以直接Scannercin=newScanner(System.in);只是...
阅读全文
摘要:转载自互联网!本人观点:ACMer,我骄傲!RoBa原创,转载请注明出处劳资六年前开始搞ACM啊!!!!!!!!!!从此踏上了尼玛不归路啊!!!!!!!!!!!!谁特么跟劳资讲算法是程序设计的核心啊!!!!!!尼玛除了面试题就没见过用算法的地方啊!!!!!!谁再跟劳资讲算法之美算法的力量,劳资一本算法导论拍死你啊!!!!!!!!那是搞ACM的入门书啊!!!!特么的入门书就一千多页啊!!!!!!!还没有习题答案啊,学完了你特么都不知道自己到底会不会啊有木有!!!!!!然后你就得看lrj的黑书啊!!!!!!还是特么的没有习题答案啊!!!!那书难的一B啊!!!!人家一个“显然”得出的结论够你想一礼拜
阅读全文
摘要:今天看数据库,书中提到:由于索引是采用 B 树结构存储的,所以对应的索引项并不会被删除,经过一段时间的增删改操作后,数据库中就会出现大量的存储碎片,这和磁盘碎片、内存碎片产生原理是类似的,这些存储碎片不仅占用了存储空间,而且降低了数据库运行的速度。如果发现索引中存在过多的存储碎片的话就要进行“碎片整理”了,最方便的“碎片整理” 手段就是重建索引, 重建索引会将先前创建的索引删除然后...
阅读全文
摘要:从今年的7月份开始,我真正的接触了ACM(Association for Computing Machinery ),到12月上旬省赛结束,半年的时间,让我学习了很多实用而有重要的知识,也让我感触很多,最终我和我的队伍也取得了很好的成绩---安徽2010ACM/ICPC大学生程序设计大赛一等奖! 今年的7月之前,我对真正的算法一直很朦胧,也感觉很虚且没太大的实际用途,因为...
阅读全文
摘要:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 基本概念 若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关...
阅读全文
摘要:【原文见: http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=dynProg】 Dynamic programming (简称DP)可以用来解决一类很重要的问题。解决这类问题将会极大的提高你的能力。我将试着帮助您了解如何使用DP来解决问题。这篇文章以例子作为基础,因为空谈理论不太容易理解。 注意: 如果您不太想阅读某节或者已经知道了所要讨论的话题-略过它去读下面的部分。Introduction (Beginner)什么是动态规划,它怎样描述?动态规划作为一种算法技巧,通常基于一个递推方程和一个(或者多个)初始状态。
阅读全文
摘要:筛选法应用!先来最基本的线性筛素数,以后的算法其实都是基于这个最基本的算法:1#include<stdio.h>2#include<string.h>3#defineM100000004intprime[M/3];5boolflag[M];6voidget_prime()7{8inti,j,k;9memset(flag,false,sizeof(flag));10k=0;11for(i=2;i<M;i++){12if(!flag[i])13 prime[k++]=i;14for(j=0;j<k&&i*prime[j]<M;j++){15
阅读全文
摘要:Problem DescriptionA number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... shows the first 20 humble numbers.Write a program to find and print the nth element in this sequenceInputThe input co
阅读全文
摘要:以前AC过的,现在复习是忘了,从网上找了个比较好的解题报告,备用!Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3672Accepted Submission(s): 1124Problem Description搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2*k
阅读全文
摘要:STL中有多种排序算法,各有各的适用范围,下面听我一一道来:I、完全排序sort() 首先要隆重推出的当然是最最常用的sort了,sort有两种形式,第一种形式有两个迭代器参数,构成一个前开后闭的区间,按照元素的 less 关系排序;第二种形式多加一个指定排序准则的谓词。sort基本是最通用的排序函数,它使用快速排序算法,并且在递归过程中,当元素数目小于一个阈值(一般是16,我的试验是24)时,转成直接插入排序。伟大的数学家Knuth已经证明,在平均意义上,快速排序是最快的了;当然,最坏复杂性比较差。sort要求随机迭代器,因此对于很多编译器来说,对于前向迭代器(如list)使用sort是一个
阅读全文
摘要:涉及到字符串的问题,无外乎这样一些算法和数据结构:自动机 KMP算法 Extend-KMP 后缀树 后缀数组 trie树 trie图及其应用。当然这些都是比较高级的数据结构和算法,而这里面最常用和最熟悉的大概是kmp,即使如此还是有相当一部分人也不理解kmp,更别说其他的了。当然一般的字符串问题中,我们只要用简单的暴力算法就可以解决了,然后如果暴力效率太低,就用个hash。当然hash也是一个面试中经常被用到的方法。这样看来,这样的一些算法和数据结构实际上很少会被问到,不过如果使用它们一般可以得到很好的线性复杂度的算法。老实说,我也一直觉得字符串问题挺复杂的,出来一个如果用暴力,hash搞不
阅读全文
摘要:函数指针的使用其实是很灵活的,它有很多技巧性很高的应用,在表驱动方法中的应用很典型,这里着重介绍一下。什么是表驱动方法 表是几乎所有数据结构课本都要讨论的非常有用的数据结构。表驱动方法出于特定的目的来使用表,下面将对此进行讨论。程序员们经常谈到"表驱动"方法,但是课本中却从未提到过什么是"表驱动"方法。表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了,通过下面的这个例子大家就
阅读全文
摘要:下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。Beam Search 束搜索(bea
阅读全文
摘要:原文地址:不太规则的迷宫生成算法2作者:女孩先直接给一个直观的例子: _ _ _ _ _ _ _ _ ╲_╱ ╲_╱ ╲_╱ ╲_╱ ╲_╱ ╲_╱ ╲_╱ ╲╲_ ╲_ ╲ _ _╱ _╱ _╱ ╱╱ ╱ ╱ ╲_╱ ╲_ ╲ ╲_ _╱ ╲╲ ╱ _╱ ╲_ ╲ ╱ ╲_ ╲_ ╲_╱ _╱╱ ╲_╱ _╱ ╲ ╱ _ ╲_╱ _ ╲_ ╲╲ ╱ _╱ ╱ ╲_╱ ╲ ╲_ ╲_╱ _╱╱ ╲_╱ _╱ ╲_ ╱ ╲_╱ ╲ ╱ ╲_ ╲╲_ ╲ ╱ _╱ ╲_╱ ╲ ...
阅读全文
摘要:原文地址:不太规则的迷宫生成算法1作者:女孩之前都说的比较方正,比较矩形的迷宫,现在来考虑一下,斜向迷宫所谓斜向迷宫,就是所有墙,都是斜了45度,结构和原来的不太一样: ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ ╲ ╱ ╱ ╲ ╱ ╱ ╱ ╲ ╲╱ ╱ ╱ ╲╱ ╲ ╲╱ ╱ ╱╲ ╲ ╱╲ ╲ ╲ ╲╱ ╱ ╱ ╱ ╱ ╱╲╱ ╲ ╲ ╲ ╲ ╲ ╲ ╲ ╲ ╲ ╲ ╲ ╲╱ ╱ ╱ ╲ ╲ ╱ ╱ ╱ ╱╲ ╲ ╲╱ ╱╲╱ ╱ ╱ ╱╲ ╲ ╲╱ ╱ ╲ ╱╲ ╲ ╱ ╱╲ ╲ ╲ ╲ ╲ ╲ ╱╲ ╲╱╲ ╲╱ ╱ ╱ ╱ ╱ ...
阅读全文
摘要:现在介绍第二种算法,使用并查集 合并生成。简单介绍一下算法思想:首先把地图关键点的连结(墙),编号1-x*y*2,然后random shuffle然后按照打乱后的次序,打通一些墙,用并查集检查是否要打通的两边是已经连通的就行了,生成的例子如下:█████████████████████ █ █ █ █████████ █ █ █ █████ █ █ █ █ █ █ █ █ █ █ ███ █████ █ █ █ █ █ █ █ █ █ █ █ █ █ ███ ███ ███ ███ █ █ █ █ █ ██...
阅读全文
摘要:原文地址:规则满迷宫地图生成算法1作者:女孩所谓规则,就是矩形,路线唯一,所谓满,就是不能在原地图里再增加路或者分支,不会出现达不到的地方如下例图:█████████████████ █ █ ██ ███ ███ █████ ██ █ █ █ ██ █ ███████ █ █ ██ █ █ █ ██ ███████ █ ██████ █ █ █ ██ █ ███████ ███ ██ █ █ ██ ███████ █████ ██ █ █ █ ████ █ █ ███████ ██ █ ...
阅读全文