搜索(DFS BFS)
sky_zdk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 2396 Lake Counting
我们从头到尾扫面一边院子,如果发现W,就对其dfs,把和它相邻的W全部变成 ".",这样记录我们进行了几次dfs,就是最后的结果。 #include int mov[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}}; char maze[100+16][100+16]; int N,M; void dfs(int x,in原创 2017-03-20 19:37:02 · 367 阅读 · 0 评论 -
poj 1414 dfs 搜索
给一个正三角形, 可以在任意一个 0 的地方填上数字 c ,填完之后计算出得分的最大值。 计算得分的规则: 数字相同的连通的集合 如果和某个0连通,就忽略了。 如果没有和0连通,分2种情况: 如果这个数字是c 则得分减去 这个集合相同数字的个数,否则加上。 #include #include #define MAX(x,y) ((x)>(y)?(x):(y)) int mov[6原创 2017-05-04 16:54:55 · 255 阅读 · 0 评论 -
poj 1635 dfs
#include #include #include #include #include #include using namespace std; string dfs(string str) { vectorq; string tem=""; int num=0,now=0; for(int i=0;i<str.size();i++) { if(str[i]=='0') nu原创 2017-05-31 11:24:27 · 312 阅读 · 0 评论 -
hdu 1241
#include #include char mat[160][160]; int n,m; int mov[8][2]={{1,0},{-1,0},{1,-1},{-1,1},{1,1},{-1,-1},{0,1},{0,-1}}; void dfs(int x,int y) { mat[x][y]='*'; for(int i=0;i<8;i++) { int x1=x+mov[i]原创 2017-05-22 07:05:23 · 270 阅读 · 0 评论 -
hdu 1760
#include #include using namespace std; int d[100][100],n,m; int ok(int i,int j) { if(!d[i][j]&&!d[i+1][j]&&!d[i][j+1]&&!d[i+1][j+1]) return 1; else return 0; } int dfs() { for(int i=0;i<n-1;i++)原创 2017-08-01 08:37:48 · 336 阅读 · 0 评论 -
poj 1465 求一个数的最小倍数满足一个条件
#include #include #include using namespace std; bool vis[5050]; int d[11],n,m; struct node { int d; int r; int pre; }q[5050]; int bfs(){ memset(vis,0,sizeof(vis)); q[0].d=0; q[0].r=0; q[0].pre原创 2017-09-04 20:15:29 · 348 阅读 · 0 评论 -
uva 10603 三个杯子倒水问题 BFS搜索
#include #include #include #include using namespace std; int cap[4],d,depth,resd,vis[260][260]; struct node{ int v[3],dist; bool operator < (const node &a) const { return dist>a.dist; } }; void原创 2017-09-19 21:32:59 · 2900 阅读 · 0 评论
分享