![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索(DFS BFS)
sky_zdk
这个作者很懒,什么都没留下…
展开
-
poj 2396 Lake Counting
我们从头到尾扫面一边院子,如果发现W,就对其dfs,把和它相邻的W全部变成 ".",这样记录我们进行了几次dfs,就是最后的结果。#includeint 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 · 322 阅读 · 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 · 205 阅读 · 0 评论 -
poj 1635 dfs
#include#include#include#include#include#includeusing 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 · 262 阅读 · 0 评论 -
hdu 1241
#include#includechar 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 · 229 阅读 · 0 评论 -
hdu 1760
#include#includeusing 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 · 275 阅读 · 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 · 296 阅读 · 0 评论 -
uva 10603 三个杯子倒水问题 BFS搜索
#include#include#include#includeusing 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 · 2809 阅读 · 0 评论