搜索
文章平均质量分 77
jz-nice
这个作者很懒,什么都没留下…
展开
-
hdu 1175 连连看 (DFS)
#include#includeint flag,map[1005][1005],v[1005][1005];int n,m,start_x,start_y,end_x,end_y,f[4][2] = { {0,1},{1,0},{0,-1},{-1,0} };void dfs(int x,int y,int num,int d){ if(num > 2) return ;原创 2013-06-22 19:06:52 · 881 阅读 · 0 评论 -
hdu 1426 Sudoku Killer(DFS 数独问题)
坑爹的输入啊!!!思路:先将需要填的数的坐标记录在结构体数组中,运用深搜填数,然后在通过一个judge函数判断是否符合要求#include#includeint map[9][9],num;struct node{ int x,y;}s[81];bool judge(int t,int cur){ int i,j; for(i = 0 ; i <原创 2013-06-22 11:19:33 · 1184 阅读 · 0 评论 -
hdu 3111 Sudoku(DFS数独)
果断水过....#includeint map[9][9];int flag,num;struct node{ int x,y;}s[81];bool judge(int t,int cur){ int i,j; for(i = 0 ; i < 9 ;i ++) if( map[i][ s[cur].y ] == t || map[ s[cur]原创 2013-06-23 10:07:22 · 837 阅读 · 0 评论 -
hdu 2780 Su-Su-Sudoku(DFS数独)
题目链接:hdu2780#include#include#include#include#include#define N 15using namespace std;int map[N][N],v1[15],v2[15];int flag,n,ok;struct node{ int x,y;}s[6];void judge1()//判断行和列{ in原创 2013-07-27 17:25:14 · 1271 阅读 · 0 评论 -
hdu 2822 Dogs(优先队列)
题目链接:hdu2822会优先队列话这题很容易AC。。。。#include#include#include#include#define N 1005using namespace std;char map[N][N];int v[N][N],d[4][2] = { {-1,0},{1,0},{0,-1},{0,1} };int begin_x,begin_y,end_x,原创 2013-07-27 10:29:31 · 1174 阅读 · 0 评论 -
hdu 1873 看病要排队(优先队列)
题目链接:hdu1873#include#include#include#includeusing namespace std;int t;struct node{ int rank,num; friend bool operator < (node a,node b) { if(a.rank == b.rank) return a.num原创 2013-08-15 10:48:05 · 908 阅读 · 0 评论 -
hdu1195Open the Lock(BFS)
题目链接:hdu1195思路:BFS,对于每个数每次有11种操作,千位和百位交换,百位和十位交换,十位和个位交换,千位加一或减一,百位加一或减一,十位加一或减一,个位加一或减一,将每次操作得到的数与目标数进行对比,同时用数组v[]进行标记,已出现过的数不再压入队列中#include #include #include #include #include #include #in原创 2013-11-16 10:20:44 · 1222 阅读 · 0 评论 -
hdu2717Catch That Cow(简单BFS)
题目链接:hdu2717简单BFS,水题一个。。。#include#include#include#include#define MAXN 100005using namespace std;int map[MAXN];int d[2] = {1,-1};int n,begin,end,flag;struct node{ int x; int step;原创 2013-11-18 19:24:17 · 927 阅读 · 0 评论 -
hdu1072 Nightmare(优先队列,BFS)
题目链接:hdu1072需要注意的是重置点只能走一次#include#include#include#include#define MAXN 10using namespace std;int map[MAXN][MAXN];int d[4][2] = { {-1,0},{0,-1},{1,0},{0,1} };int n,m,begin_x,begin_y,end_x,e原创 2013-11-18 16:06:16 · 1212 阅读 · 0 评论 -
hdu1175连连看(BFS)
题目链接:hdu1175BFS和DFS都可以解决这道题目#include#include#include#include#define MAXN 1005using namespace std;int map[MAXN][MAXN],v[MAXN][MAXN];const int dx[4] = {0,1,0,-1};const int dy[4] = {-1,0,1,0}原创 2013-11-21 15:57:54 · 1708 阅读 · 0 评论 -
hdu1026(BFS,打印路径)
题目链接:hdu1026思路:用BFS搜,用数组dir[i][j]记录该点是由哪一个方向上的点遍历过来的,v[i][j]记录是否在该点上遇到怪物。BFS搜索完以后,再由终点向起点搜,同时打印路径#include#include#include#include#define MAXN 105using namespace std;char map[MAXN][MAXN];int原创 2013-11-24 16:07:35 · 1166 阅读 · 0 评论 -
hdu1885(状态压缩)
题目链接:hdu1885刚刚做了hdu1429那道题,这两道题一样的方法#include#include#include#include#include#define MAXN 105using namespace std;char map[105][105];bool v[105][105][20];const int d[4][2] = {{0,-1},{1,0},{原创 2013-11-25 20:35:11 · 946 阅读 · 0 评论 -
hdu1078 zoj1107(记忆化搜索/DP)
题目链接:点击链接题目大意:老鼠从(0,0)出发,每次在同一个方向上最多前进k步,且每次到达的位置上的数字都要比上一个位置上的数字大,求老鼠经过的位置上的数字的和的最大值#include#include#define max(a,b) a>b?a:bint n;int k;//前进的步数int map[105][105];int ans[105][105];//记忆化搜索,保存原创 2013-07-16 16:06:47 · 1279 阅读 · 0 评论 -
hdu1429(BFS+状态压缩)
题目链接:hdu1429思路:要用二进制的方法表示钥匙的数量及种类,0表示没钥匙,1表示钥匙a,10表示钥匙b,100表示钥匙c。。。。。11表示钥匙b和a,101表示钥匙c和a(用二进数可以表示多枚钥匙)。。。判断时只需用位运算&即可#include#include#include#include#include#define MAXN 105using namesp原创 2013-11-25 19:42:51 · 985 阅读 · 0 评论 -
hdu1254推箱子(BFS)
题目链接:hdu1254/*用广搜寻找最小步数,推箱子需要满足以下几个条件:1.人能走到推箱子的那个位置2.人不能穿过箱子.3.箱子可以回到前一状态的位置,但不是同一方向回到的*/#include #include #include #include #include #include #include using namespace std;int d[4][2]原创 2014-03-13 19:39:31 · 1208 阅读 · 0 评论 -
poj1753(BFS+位存储)
题目链接:poj1753每一个位置的棋子有两种颜色,黑或白,我们可以用0,1来表示颜色。一共有16个棋子,可以用一个int型的数来表示这16个棋子的状态。然后BFS搜一下,最多65535次#include #include #include #include #include using namespace std;const int N = (1<<16)-1;int v[原创 2014-03-16 09:42:29 · 1113 阅读 · 0 评论 -
poj 1088/nyoj 10 滑雪(记忆化搜索/DP)
题目链接:poj1088 nyist10#include#include#define max(a,b) (a>b?a:b)int map[105][105];int d[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};int dp[105][105];int n,m;int dfs(int x,int y){ if(dp[x][y] > 1)原创 2013-07-18 10:10:34 · 779 阅读 · 0 评论 -
hdu1978(记忆化搜索/DP)
题目链接:hdu1978原创 2014-04-21 14:56:57 · 802 阅读 · 0 评论 -
hdu 2612 Find a way(BFS)
题目链接:hdu2612思路:题意是求两个人到某一个KFC花费时间和最小,其实就是求最短距离和,用两个BFS,分别以两个人为起点,分别记录下两人到每个KFC的距离,然后求出最小的和#include#include#include#include#define N 205using namespace std;char map[N][N];int v[N][N],ans1[N]原创 2013-07-27 09:55:36 · 971 阅读 · 0 评论 -
hdu 1501 Zipper
#include#include#includeusing namespace std;char a[205],b[205],map[405];int v[205][205],flag,len;void dfs(int i,int j,int num){ if(num == len) { flag = 1; return ; }原创 2013-06-09 15:12:51 · 786 阅读 · 0 评论 -
hdu 1045 Fire Net (DFS)
#include#includeusing namespace std;char map[5][5];//刚开始大小开成了4,一直WAint n,MAX;bool judge(int x,int y){ for(int i = x - 1; i >= 0 ; i --)//判断在该列上,此点以上的点是否已放置碉堡 { if(map[i][y] == '0原创 2013-06-22 21:30:59 · 781 阅读 · 0 评论 -
hdu 2553 N皇后问题 (经典DFS)
题目链接:点击链接思路:用一维数组hang[num] = i,num表示第num行,i表示第i列,计算n = 1~10皇后的不同放置数量,然后打表#include#includeint hang[11],n,sum;int ans[11];bool judge(int num){ for(int i = 1 ; i < num ; i ++) if(hang[nu原创 2013-07-12 11:17:23 · 1729 阅读 · 0 评论 -
hdu1312 Red and Black(DFS/BFS入门题目)
题目意思就是 从一个点出发,最多能走多少步#include#includeusing namespace std;int ans,x,y;int f[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};char map[22][22];void dfs(int i,int j){ ans ++; int k; for(k = 0 ;原创 2013-06-03 17:12:58 · 1304 阅读 · 0 评论 -
hdu 1728 逃离迷宫(DFS)
刚开始用连连看那道题的方法做的,一直超时,不知道怎么剪枝,在网上搜了别人的解法,大部分是BFS(看来这题BFS更简单,不过还没开始大量练习BFS,等学了BFS,再做一遍),也有DFS的解法,看了看,写了一个,代码如下:#include #include int x_begin,y_begin,x_end,y_end;char map[105][105];int wan[105][105原创 2013-07-09 16:11:25 · 1493 阅读 · 0 评论 -
hdu 1242 Rescue(BFS入门)
第一次用容器做的BFS题目,题目有个地方比较坑,就是遍历时的方向,比如上下左右能AC,右上左下就WA#include #include #include #include using namespace std;char map[205][205];int x_begin,y_begin,flag,n,m;int v[205][205],d[4][2] = { {-1,0},原创 2013-07-06 17:57:32 · 962 阅读 · 0 评论 -
hdu 1253 胜利大逃亡(BFS)
题目链接:点击链接三维的BFS,刚开始一直超内存,超无语...... 改了n多次终于AC了#include #include #include #include using namespace std;int map[50][50][50];int d[6][3] = { {1,0,0},{-1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1} }原创 2013-07-13 18:00:30 · 804 阅读 · 0 评论 -
hdu 1728 逃离迷宫(BFS)
题目链接:点击链接DFS做法:点击链接之前用DFS做的,结果超时,看了别人的做法才做出来,现在用BFS做了,明显感觉用BFS容易多了#include #include #include #include using namespace std;char map[105][105];int v[105][105];//记录起点到达每个点的最少转弯次数int d[4][2]原创 2013-07-13 15:47:41 · 942 阅读 · 0 评论 -
hdu 1240 Asteroids!(BFS)
题目链接:点击链接简单BFS,和二维的做法相同(需注意坐标)题目大意:三维的空间里,给出起点和终点,“O”表示能走,“X”表示不能走,计算最少的步数#include #include #include #include using namespace std;char map[11][11][11];int v[11][11][11],d[6][3] = { {1,0,0}原创 2013-07-13 14:46:04 · 992 阅读 · 0 评论 -
hdu 1372 Knight Moves(BFS)
题目链接:点击链接简单的BFS,需注意knight的走法跟象棋中马的走法相同,都是“日”字形走法#include#include#include#includeusing namespace std;int map[10][10];int begin_x,begin_y,end_x,end_y;int ans,d[8][2] = { {-2,1},{-1,2},{1,2},{2原创 2013-07-12 19:04:45 · 863 阅读 · 0 评论 -
hdu 2616 Kill the monster(DFS)
题目链接:hdu2616暴力求解#include#include#include#includeusing namespace std;int a[15],b[15],v[15];int limit,n,ans,flag;void dfs(int blood,int cur){ if(blood <= 0) { ans = min(ans,c原创 2013-07-20 17:06:14 · 888 阅读 · 0 评论 -
hdu 1455 Sticks(经典搜索)
题目链接:hdu1455给你若干根短棒,将其组合成等长的木棒,尽可能短 ,并输出其长度#include#include#includeusing namespace std;int n,map[70],v[70];int sum;//所有木棒的长度和int total,length,flag;bool cmp(int x,int y){ return x > y;原创 2013-07-21 10:05:00 · 1412 阅读 · 0 评论 -
hdu 1258 Sum It Up(DFS)
题目链接:hdu1258水题一道.....................#include#include#includeusing namespace std;int map[15],v[15],ans[15];int sum,n,flag;void dfs(int x,int num,int cur){ int i; if(num == sum)原创 2013-07-23 11:21:51 · 1013 阅读 · 0 评论 -
hdu 4198 Quick out of the Harbour(BFS+优先队列)
题目链接:hdu4198题目大意:求起点S到出口的最短花费,其中#为障碍物,无法通过,‘.’的花费为1 ,@的花费为d+1。需注意起点S可能就是出口,因为没考虑到这个,导致WA很多次.......#include#include#include#includeusing namespace std;char map[505][505];int d[4][2] = {{0,原创 2013-07-24 09:15:00 · 951 阅读 · 0 评论 -
hdu 1495 非常可乐(BFS)
题目链接:hdu1495共有6种操作,x-->y,x-->z,y-->x,y-->z,z-->x,z-->y#include#include#include#include#define MAXN 105using namespace std;int v[MAXN][MAXN][MAXN];int a,b,c,flag;struct node{ int x,y,z原创 2013-07-24 15:49:20 · 894 阅读 · 0 评论 -
hdu 1010 Tempter of the Bone(DFS奇偶性剪枝+多重剪枝)
题目链接:hdu1010本题重点考察:剪枝,奇偶性剪枝#include#include#includeusing namespace std;char map[8][8];int stx,sty,endx,endy,n,m,t,yes;//stx,sty表示出发点,yes判断是否符合条件int f[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};v原创 2013-08-01 10:09:32 · 982 阅读 · 0 评论 -
hdu1180诡异的楼梯(BFS+优先队列)
题目链接:/*思路:BFS+优先队列 每当遇到楼梯的时候, 1、如果能过 a、通过楼梯后不会超出边界,则走过楼梯 b、通过楼梯后超出边界,则该点不需再入队 2、如果不能通过,时间加1,此点继续入队,等待下一次楼梯变换方向*/#include #include #include #include #include #incl原创 2014-04-07 09:12:32 · 1213 阅读 · 0 评论