
搜索
Fenice
狂奔的蜗牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1010搜索+剪枝
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42078 Accepted Submission(s): 11382Problem DescriptionThe原创 2012-12-02 21:14:04 · 850 阅读 · 0 评论 -
hdu 1240 三维BFS
1A 0MS 注意坐标方向#include #include #include #include using namespace std;typedef struct{ int x; int y; int z; int step;}point;int N;char map[11][11][11];bool visited[11][11][11];point原创 2013-03-22 13:34:30 · 870 阅读 · 0 评论 -
hdu 1241 经典DFS
貌似做过好几遍了。。。#include #include using namespace std;int m,n;char map[105][105];bool visited[105][105];int num;int dirX[8] = {-1,-1,0,1,1,1,0,-1};int dirY[8] = {0,1,1,1,0,-1,-1,-1};void DFS(i原创 2013-03-23 14:37:07 · 755 阅读 · 0 评论 -
hdu 1242 BFS
//直接从a向r搜索,不需要用优先队列#include #include #include using namespace std;typedef struct{ int x; int y; int step;}point;int N,M;char map[205][205];bool visited[205][205];int s_x,s_y;int dirX原创 2013-03-24 11:33:58 · 723 阅读 · 0 评论 -
hdu 1312 DFS
//看题代码加刷人人一共做了10分钟,搜索题现在真水#include #include using namespace std;int W,H;char map[21][21];bool visited[21][21];int dirX[4] = {-1,0,1,0};int dirY[4] = {0,1,0,-1};int s_x,s_y;int num;void D原创 2013-03-24 22:29:20 · 761 阅读 · 0 评论 -
USACO checker WA code
/*ID:kevin_s1PROG:checkerLANG:C++*/#include #include #include #include #include #include #include #include #include #include #include using namespace std;//gobal variable====const原创 2014-06-08 00:35:42 · 620 阅读 · 0 评论 -
USACO milk3 DFS
/*ID:kevin_s1PROG:milk3LANG:C++*/#include #include #include #include using namespace std;int A,B,C;int milk[21][21][21];int note[21];void DFS(int a, int b, int c){ if(milk[a][b][c]原创 2014-05-23 23:04:32 · 1162 阅读 · 0 评论 -
USACO zerosum DFS 1A
USER: Kevin Samuel [kevin_s1]TASK: zerosumLANG: C++Compiling...Compile: OKExecuting... Test 1: TEST OK [0.003 secs, 3508 KB] Test 2: TEST OK [0.003 secs, 3508 KB] Test 3: TEST OK [0.00原创 2014-06-30 01:43:11 · 1201 阅读 · 0 评论 -
USACO holstein 超时代码
/*ID:kevin_s1PROG:holsteinLANG:C++*/第八组数据跪了,半天都不出结果#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define MA原创 2014-06-15 23:10:28 · 1091 阅读 · 0 评论 -
USACO ariprog 暴力枚举+剪枝
/*ID:kevin_s1PROG:ariprogLANG:C++*/#include #include #include #include #include #include #include #include #include #include #include using namespace std;//gobal variable====int d原创 2014-06-03 16:28:02 · 1683 阅读 · 0 评论 -
USACO hamming 继续暴搜
USER: Kevin Samuel [kevin_s1]TASK: hammingLANG: C++Compiling...Compile: OKExecuting... Test 1: TEST OK [0.003 secs, 3504 KB] Test 2: TEST OK [0.005 secs, 3504 KB] Test 3: TEST OK [0.00原创 2014-06-16 15:42:02 · 826 阅读 · 0 评论 -
hdu 1195 BFS
广搜32MS,这题比较简单,进行各种变换推状态就行了#include #include #include #include using namespace std;typedef struct{ int password[4]; //4位密码 int step; //步数}pass;int target[4]; //最终密码int T原创 2013-03-20 15:19:05 · 688 阅读 · 0 评论 -
hdu 1045 DFS回溯
#include using namespace std;int n;char map[5][5];int res;bool judge(int x,int y){ for(int i = x; i >= 0; i--) { if(map[i][y] == '0') { return false; } if(map[i][y] == 'X') {原创 2013-03-02 18:13:45 · 678 阅读 · 0 评论 -
hdu 1175
WA了若干次。。。。。不知道什么原因,又不知道改了哪里又过了#include #include #include using namespace std;int n,m;int q;int x1,y1,x2,y2;int dirX[]={-1,0,1,0};int dirY[]={0,1,0,-1};typedef struct{ int x,y; in原创 2013-03-08 23:03:05 · 901 阅读 · 0 评论 -
剪枝方法
搜索的进程可以看作从树根出发,遍历一颗倒置的树---搜索树的过程。所谓剪枝就是通过某种判断,避免一些不必要的遍历过程,就是剪去搜索树中的某些枝条。剪枝的原则:(1)正确性 必须保证不能丢失正确的解,这是前提。通过解答必须具备的特征,必须满足的条件来考察待判断的枝条能否被剪掉。(2)准确性 即能够尽可能多的剪去不能得到正确解的枝条。(3)高效性原创 2012-12-02 16:31:18 · 6731 阅读 · 0 评论 -
hdoj 1016经典问题素数环
//经典搜索题 #include #include using namespace std;int primelist[38] = {0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1};//素数表, int n;int A[21]; //存放序列结果 int vis[21]原创 2012-12-25 01:15:49 · 1471 阅读 · 0 评论 -
hdu1015
#include #include #include #include using namespace std;int flag[100],s[100],f[5];long target;#define res(v,w,x,y,z) v-w*w+x*x*x-y*y*y*y+z*z*z*z*zint dfs(int step,int len,int n){ if(st原创 2012-12-14 23:32:01 · 1594 阅读 · 0 评论 -
hdu 1072
#include using namespace std;int map[10][10];int _time[10][10];int step[10][10];int T,N,M;int mins;int sx,sy;int dirx[4] = {-1,0,1,0};int diry[4] = {0,1,0,-1};bool flag;void DFS(int x,in原创 2012-12-16 23:47:46 · 637 阅读 · 0 评论 -
hdu1072 BFS
#include #include #include using namespace std;int map[10][10];int sx,sy;int step[10][10];int _time[10][10];int T,N,M;int dirx[4] = {-1,0,1,0};int diry[4] = {0,1,0,-1};typedef struct{原创 2012-12-17 00:59:30 · 520 阅读 · 0 评论 -
回溯法-算法框架及基础
回溯法其实也是一种搜索算法,它可以方便的搜索解空间。 回溯法解题通常可以从以下三步入手: 1、针对问题,定义解空间 2、确定易于搜索的解空间结构 3、以深度优先的方式搜索解空间,并在搜索的过程中进行剪枝 回溯法通常在解空间树上进行搜索,而解空间树通常有子集树和排列树。 针对这两个问题,算法的框架基本如下: 用回溯法搜索子集合树的一般框架: Cpp代码转载 2013-01-23 01:39:30 · 3096 阅读 · 0 评论 -
回溯解题方法
回溯算法如果上期的“百钱买百鸡”中鸡的种类数是变化的,用枚举法就无能为力了,这里介绍另一种算法——回溯法。回溯法是一种既带有系统性又带有跳跃性的搜索法,它的基本思想是:在搜索过程中,当探索到某一步时,发现原先的选择达不到目标,就退回到上一步重新选择。它主要用来解决一些要经过许多步骤才能完成的,而每个步骤都有若干种可能的分支,为了完成这一过程,需要遵守某些规则,但这些规则又无法用数学公式来描原创 2013-01-29 18:13:48 · 959 阅读 · 0 评论 -
hdu1035 DFS模拟
做水题找感觉,一次AC水过的#include #include using namespace std;int row,column,start;int map[11][11];char dir[11][11];int step;bool flag;int before;void DFS(int x,int y){ if(map[x][y] != 0) {原创 2013-02-23 20:40:13 · 709 阅读 · 0 评论 -
hdu 1104
题目大意是N,K,M可以将N+M-->M,N-M-->M,N*M--->M,N%M--->M,然后求什么时候可以使N%K==(初始N+1)%K,数学不好,只会搜索,BFS 要记录路径注意N可能是小与0的,要加上n*M直到大于0再求N%KM;#include #include #include #include using namespace std;const i原创 2013-03-06 15:20:56 · 981 阅读 · 0 评论 -
USACO lamps
IOI 98的题目,那时候好像还不是很难,连我这种弱渣都能做。每个按钮按两次就相当于没按,所以一共其实相当于最多按4次,先把C降到/*ID:kevin_s1PROG:lampsLANG:C++*/#include #include #include #include #include #include #include #include #include #inc原创 2014-06-23 01:19:18 · 1235 阅读 · 0 评论