- 博客(18)
- 收藏
- 关注
原创 rabin-karp 算法学习心得-lintcode 594
今天学习了一下rabin-karp算法,可以说是kmp的简易版,但是效果是差不多的这题在lintcode594上看着九章算法的视频学会的说一下rabin-karp的核心思想,用到了hashtable,就是将一个具体的string的key转换成了一个int类型 valuekey是唯一的,但是value不一定唯一,所以我们可以通过对大数取模的方法降低value重复的概率具体来看
2017-09-11 02:09:16 926
原创 POJ 3126 Prime Path
BFS超级水题= =但是其实要不是看到它分类在BFS里面我都想爆搜了= =然后就没有然后了就是每一位上的数不断的变化,判断是否为质数,并且此数是否已经被访问过很基本的BFS没什么难的,就是注意要剪枝,别TLE了#include #include #include #include #include #include using namespace std;int
2014-04-03 16:30:33 572
原创 POJ 3278 Catch That Cow
BFS基础框架题,写在这里只是为了让大家对于BFS有个更好的理解对于我也是,我一开始也不知道BFS和DFS能做些什么,只知道可以用来走迷宫,发现还是蛮有趣的,现在更加有趣了。这道题目很容易理解,给你两个数,三种操作,问N是否能通过这三种操作将N变成K.看着数据量暴力肯定超时,所以当时直接就想到了BFS,的确BFS是蛮快的,但是费内存(果然,一开始没有写一个数组用于标记是否某个数已经
2014-04-02 19:55:36 644
原创 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 556
原创 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 472
原创 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 468
原创 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 565
原创 hdu 1241 oil deposits
搜索一直学的很水= =有时灵光有时不灵光= =决定花两天时间复习一下,把以前水过的题目再整理整理,别贱笑了...题目意思很简单,问有几片油田(只要某点的八个临位上也有‘@’就表示两者是连在一起的,算一块)很简单的DFS,入门级别,只要先找到一个‘@’然后深搜下去,就行,直接代码(这题有个问题,输入的时候要读掉多余的空行= =麻烦,一开始还没发现)#include #inc
2014-03-30 22:50:31 449
原创 hdu 2844 Coins
题目:http://acm.hdu.edu.cn/showproblem.php?pid=2844题目的意思其实是求硬币的组合方案,使得硬币的价值总额不超过m一个很典型多重背包问题这个题目如果用0-1背包来做,是会超时的,所以用多重背包,其实差别很小,只不过不能用逆序的方法,要采取顺序,理由是并不清楚前一次可以取多少枚硬币同时采用2进制的处理方法。代码如下:#inclu
2013-12-08 01:12:45 485
转载 Intel的东征与ARM的西进
从2003年到2008年,处理器双雄Intel和AMD在64位CPU领域展开了一场长达五年,极为惨烈的科技战争。此战双方均投入巨额研发资金,战事波及近千亿美元的半导体市场,其间更是风谲云诡,极尽各种商战权谋之术,令一众围观厂商大呼过瘾。这便是芯片史上赫赫有名的“长平之战”。 话说时间走到了20世纪末期,32位CPU的4G内存限制已成明显缺陷,64位CPU则成为工业界的必然方向。这一次,向来以
2013-12-01 22:06:48 922
原创 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 512
原创 hdu 1081
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1081这道题是前文提到的Max Sum的强化版:http://blog.csdn.net/custcoder/article/details/17033323给一个二维数组,然后用一个任意大小的矩形框去框二维数组的元素,使得矩形内元素之和最大在DP中,就是经典的最大子矩阵问题.其实可以将二维
2013-11-30 01:42:29 514
原创 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 576
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人