- 博客(18)
- 收藏
- 关注
原创 rabin-karp 算法学习心得-lintcode 594
今天学习了一下rabin-karp算法,可以说是kmp的简易版,但是效果是差不多的 这题在lintcode594上看着九章算法的视频学会的 说一下rabin-karp的核心思想,用到了hashtable,就是将一个具体的string的key转换成了一个int类型 value key是唯一的,但是value不一定唯一,所以我们可以通过对大数取模的方法降低value重复的概率 具体来看
2017-09-11 02:09:16
975
原创 POJ 3126 Prime Path
BFS超级水题= = 但是其实要不是看到它分类在BFS里面我都想爆搜了= = 然后就没有然后了 就是每一位上的数不断的变化,判断是否为质数,并且此数是否已经被访问过 很基本的BFS 没什么难的,就是注意要剪枝,别TLE了#include #include #include #include #include #include using namespace std; int
2014-04-03 16:30:33
595
原创 POJ 3278 Catch That Cow
BFS基础框架题,写在这里只是为了让大家对于BFS有个更好的理解 对于我也是,我一开始也不知道BFS和DFS能做些什么,只知道可以用来走迷宫,发现还是蛮有趣的,现在更加有趣了。 这道题目很容易理解,给你两个数,三种操作,问N是否能通过这三种操作将N变成K. 看着数据量暴力肯定超时,所以当时直接就想到了BFS, 的确BFS是蛮快的,但是费内存(果然,一开始没有写一个数组用于标记是否某个数已经
2014-04-02 19:55:36
669
原创 POJ 2251 Dungeon Master
题目:http://poj.org/problem?id=2251 题目的要求很简单,就是求个最短路 只不过二维的迷宫推广到了三维的迷宫而已 就是用BFS用到队列 话不多说,直接上代码,很好理解. #include #include #include #include #include #include using namespace std; int m,n,p; int
2014-04-01 22:35:06
582
原创 POJ 2488 A Knight's Journey
题目:http://poj.org/problem?id=2488 题目就是马走‘日’字,能否不重复地走完一个棋盘,如果可以的话就按照字典序输出走棋步骤 继续水题一道(= =总是水题啊)... 开一个数组用于记录某点是否已经被访问过,再用过struct记录一下走棋步骤最后输出就行了 #include #include #include #include #include usin
2014-04-01 10:45:59
501
原创 HDU 1010 Tempter of the Bone
http://acm.hdu.edu.cn/showproblem.php?pid=1010 题目读完一开始以为是BFS的题目,求一个最短路然后计算时间... 后来发现不对= =一定要正好到达出口的时候时间也吻合才能出去 所以是DFS... 一道比较基础的DFS,但是需要剪枝= =(一开始TLE了两次,才觉得需要剪枝,蠢哭) #include #include #include
2014-03-31 18:13:25
496
原创 HDU 1312 Red and Black
还是水题一道 http://acm.hdu.edu.cn/showproblem.php?pid=1312 就是求可以到达的点,移动方向为上下左右四个方向,要求是‘.’为可到达的,'#'不可越过,先找到'@'起始位置,然后就可以DFS了 其实和1241差不多,甚至还要简单一点... 没什么难度,入门级搜索 #include #include #include #include us
2014-03-31 11:55:11
602
原创 hdu 1241 oil deposits
搜索一直学的很水= = 有时灵光有时不灵光= = 决定花两天时间复习一下,把以前水过的题目再整理整理,别贱笑了... 题目意思很简单,问有几片油田(只要某点的八个临位上也有‘@’就表示两者是连在一起的,算一块) 很简单的DFS,入门级别,只要先找到一个‘@’然后深搜下去,就行,直接代码 (这题有个问题,输入的时候要读掉多余的空行= =麻烦,一开始还没发现) #include #inc
2014-03-30 22:50:31
480
原创 hdu 2844 Coins
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目的意思其实是求硬币的组合方案,使得硬币的价值总额不超过m 一个很典型多重背包问题 这个题目如果用0-1背包来做,是会超时的,所以用多重背包,其实差别很小,只不过不能用逆序的方法,要采取顺序,理由是并不清楚前一次可以取多少枚硬币 同时采用2进制的处理方法。 代码如下: #inclu
2013-12-08 01:12:45
517
转载 Intel的东征与ARM的西进
从2003年到2008年,处理器双雄Intel和AMD在64位CPU领域展开了一场长达五年,极为惨烈的科技战争。此战双方均投入巨额研发资金,战事波及近千亿美元的半导体市场,其间更是风谲云诡,极尽各种商战权谋之术,令一众围观厂商大呼过瘾。这便是芯片史上赫赫有名的“长平之战”。 话说时间走到了20世纪末期,32位CPU的4G内存限制已成明显缺陷,64位CPU则成为工业界的必然方向。这一次,向来以
2013-12-01 22:06:48
958
原创 hdu 2159
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1159 题意很简单,即求两个字符串的最长公共子序列的长度 利用一个二维数组dp[i][j]储存,第一个字符串前I个字符与第二个字符串前j个字符的公共子串长度,一种回溯的思想。 状态转移方程: if(str[i-1]!=str[j-1]) dp[i][j]=Max(dp[i-1][j],dp[i][
2013-11-30 03:40:38
585
原创 hdu 1081
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1081 这道题是前文提到的Max Sum的强化版:http://blog.youkuaiyun.com/custcoder/article/details/17033323 给一个二维数组,然后用一个任意大小的矩形框去框二维数组的元素,使得矩形内元素之和最大 在DP中,就是经典的最大子矩阵问题. 其实可以将二维
2013-11-30 01:42:29
599
原创 hdu 1003
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目的大意就是求一个数列中最大的子序列的和,并记录子序列开始与结束的元素在原数列中的位置,最后一起输出 其实就是一个最大子序列问题 题目并不难,但是可以说是入门dp的开始。 下面附上代码:#include #include using namespace std; int arr[100
2013-11-29 23:26:23
609
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人