搜索
文章平均质量分 58
onthewaytotop
每天一道搜索题有益身心健康~
展开
-
hdu 2087 剪花布条 (kmp模板题)
看样例就知道题意,kmp模板的稍微改动Sample Inputabcde a3aaaaaa aa# Sample Output03#include#include#include#includeusing namespace std;char t[1111],p[1111];int pi[1111];void getFail(char原创 2016-07-22 11:09:39 · 290 阅读 · 0 评论 -
hdu 1584 蜘蛛牌(dfs)
Problem Description蜘蛛牌是windows xp操作系统自带的一款纸牌游戏,游戏规则是这样的:只能将牌拖到比她大一的牌上面(A最小,K最大),如果拖动的牌上有按顺序排好的牌时,那么这些牌也跟着一起移动,游戏的目的是将所有的牌按同一花色从小到大排好,为了简单起见,我们的游戏只有同一花色的10张牌,从A到10,且随机的在一行上展开,编号从1到10,把第i号上的牌移到第j号牌上原创 2016-07-25 08:44:19 · 413 阅读 · 0 评论 -
hdu 1426 Sudoku Killer(数独 dfs)
题意:就是数独!分析:这题被大神认为是水题,我也只是有点思路,跟着大神的思路和代码敲完,一直T啊,天哪。。一定要cin输入才能不T嘛,为何??Sample Input7 1 2 ? 6 ? 3 5 8? 6 5 2 ? 7 1 ? 4? ? 8 5 1 3 6 7 29 2 4 ? 5 6 ? 3 75 ? 6 ? ? ? 2 4 11 ? 3 7 2 ? 9 ?转载 2016-07-24 21:10:30 · 390 阅读 · 0 评论 -
hdu 1016 Prime Ring Problem (dfs)
题意:输入一个n(nNote: the number of first circle should always be 1.Sample Input68 Sample OutputCase 1:1 4 3 2 5 61 6 5 2 3 4Case 2:1 2 3 8 5 6 7 41 2 5 8 3 4 7 61原创 2016-07-24 19:38:01 · 176 阅读 · 0 评论 -
hdu 1010Tempter of the Bone(dfs+剪枝)
题意:有一个N*M的迷宫,‘.’代表能走的格子,‘X’代表墙,‘S’代表入口,‘D’代表出口,如果能在规定时间内到达出口,输出“YES”,否则输出“NO”。分析:感觉自己老是不会搜索,看了几段课程后想开始练练搜索【不知道为什么一直不喜欢搜索题,所以一直没做这个专题】,感觉这题很经典。#include #includeusing namespace std;char map[9][9]原创 2016-07-24 19:02:08 · 225 阅读 · 0 评论 -
字符串搜索之Rabin-Karp 算法(伪代码)
最近在听哈尔滨工业大学王宏志老师的《算法设计与分析》这门课,感觉受益匪浅。今天就记录一下有关字符串搜索的Rabin-Karp 算法。原创 2016-07-21 19:50:54 · 821 阅读 · 0 评论 -
字符串搜索之KMP算法(伪代码)
之前的Rabin-Karp算法虽然在一定程度上达到了优化,但是最坏情况下也是O(nm)的复杂度。 接下来说说KMP算法,复杂度是线性的O(n+m) 前缀表• 我们可以预先计算大小为m的前缀表来存储p[q]的 值 (0 P p a p p a r q 0 1 2 3 4 5 6p[q] 0 0 0 1 1原创 2016-07-21 20:38:20 · 2656 阅读 · 0 评论 -
字符串搜索之BMH 算法(伪代码)
天哪,算法复杂度越来越低了,连线性的都不用了!!O(n-m)!!从后往前扫的功效!!(要匹配的字符) 逆简单算法• 如果从P的后面开始搜索?– Boyer and MooreReverse-Naive-Search(T,P)01 for s 02 j 03 // check if T[s..s+m–1] = P[0..m–1]04 while T[s+j] = P原创 2016-07-21 21:19:19 · 1178 阅读 · 0 评论 -
kmp算法模板
据说是刘佳汝书籍里的模板,亲测能用: void getFail(char* P, int* f){ int m = strlen(P); f[0] = 0; f[1] = 0; for(int i = 1; i < m; i++) { int j = f[i]; while(j && P[i] != P[j]) { j = f[j]; } f[i + 1转载 2016-07-22 11:00:01 · 215 阅读 · 0 评论 -
hdu 1518 Square(dfs)
题意:给你几个木棒,问能否将这些木棒头尾相接形成一个正方形分析:记录我的第一道自己敲的dfs!!!,虽然最后T了(T T)。这题要优化的地方很多,不然很容易超时。#include#include#include#includeusing namespace std;int vis[100],a[100];int m;int l; //边长(总和除以4) bool dfs(i转载 2016-07-25 10:30:05 · 210 阅读 · 0 评论