搜索
Fenice
狂奔的蜗牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 704 阅读 · 0 评论 -
USACO lamps
IOI 98的题目,那时候好像还不是很难,连我这种弱渣都能做。每个按钮按两次就相当于没按,所以一共其实相当于最多按4次,先把C降到 /* ID:kevin_s1 PROG:lamps LANG:C++ */ #include #include #include #include #include #include #include #include #include #inc原创 2014-06-23 01:19:18 · 1287 阅读 · 0 评论 -
USACO hamming 继续暴搜
USER: Kevin Samuel [kevin_s1] TASK: hamming LANG: C++ Compiling... Compile: OK Executing... 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 · 864 阅读 · 0 评论 -
USACO ariprog 暴力枚举+剪枝
/* ID:kevin_s1 PROG:ariprog LANG: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 · 1733 阅读 · 0 评论 -
USACO holstein 超时代码
/* ID:kevin_s1 PROG:holstein LANG:C++ */第八组数据跪了,半天都不出结果 #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MA原创 2014-06-15 23:10:28 · 1119 阅读 · 0 评论 -
USACO zerosum DFS 1A
USER: Kevin Samuel [kevin_s1] TASK: zerosum LANG: C++ Compiling... Compile: OK Executing... 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 · 1245 阅读 · 0 评论 -
USACO milk3 DFS
/* ID:kevin_s1 PROG:milk3 LANG: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 · 1221 阅读 · 0 评论 -
USACO checker WA code
/* ID:kevin_s1 PROG:checker LANG:C++ */ #include #include #include #include #include #include #include #include #include #include #include using namespace std; //gobal variable==== const原创 2014-06-08 00:35:42 · 655 阅读 · 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 · 794 阅读 · 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 · 754 阅读 · 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 · 784 阅读 · 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 · 898 阅读 · 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 · 721 阅读 · 0 评论 -
hdu1010搜索+剪枝
Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 42078 Accepted Submission(s): 11382 Problem Description The原创 2012-12-02 21:14:04 · 888 阅读 · 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 · 940 阅读 · 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 · 1011 阅读 · 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 · 789 阅读 · 0 评论 -
回溯解题方法
回溯算法 如果上期的“百钱买百鸡”中鸡的种类数是变化的,用枚举法就无能为力了,这里介绍另一种算法——回溯法。 回溯法是一种既带有系统性又带有跳跃性的搜索法,它的基本思想是:在搜索过程中,当探索到某一步时,发现原先的选择达不到目标,就退回到上一步重新选择。它主要用来解决一些要经过许多步骤才能完成的,而每个步骤都有若干种可能的分支,为了完成这一过程,需要遵守某些规则,但这些规则又无法用数学公式来描原创 2013-01-29 18:13:48 · 1007 阅读 · 0 评论 -
回溯法-算法框架及基础
回溯法其实也是一种搜索算法,它可以方便的搜索解空间。 回溯法解题通常可以从以下三步入手: 1、针对问题,定义解空间 2、确定易于搜索的解空间结构 3、以深度优先的方式搜索解空间,并在搜索的过程中进行剪枝 回溯法通常在解空间树上进行搜索,而解空间树通常有子集树和排列树。 针对这两个问题,算法的框架基本如下: 用回溯法搜索子集合树的一般框架: Cpp代码转载 2013-01-23 01:39:30 · 3198 阅读 · 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 · 550 阅读 · 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 · 694 阅读 · 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*z int dfs(int step,int len,int n) { if(st原创 2012-12-14 23:32:01 · 1649 阅读 · 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 · 1513 阅读 · 0 评论 -
剪枝方法
搜索的进程可以看作从树根出发,遍历一颗倒置的树---搜索树的过程。所谓剪枝就是通过某种判断,避免一些不必要的遍历过程,就是剪去搜索树中的某些枝条。 剪枝的原则: (1)正确性 必须保证不能丢失正确的解,这是前提。通过解答必须具备的特征,必须满足的条件来考察待判断的枝条能否被剪掉。 (2)准确性 即能够尽可能多的剪去不能得到正确解的枝条。 (3)高效性原创 2012-12-02 16:31:18 · 6843 阅读 · 0 评论
分享