广度优先搜索
古河渚Nagisa
雪中智代雨中杏,樱下古河花田汐。
香醇宫泽黑琴美,天际芽衣黄昏琼
展开
-
P1433 吃奶酪
/*题型:dfs注意:预处理,回溯 */ #include#include#includeusing namespace std;int n;double dis[16][16],ans=1000000000.0,now,x[16],y[16];//两点距离(预处理),答案,现在的距离,每个点的坐标bool vis[16];//奶酪是否被吃void dfs(int pos,转载 2017-08-27 20:46:06 · 220 阅读 · 0 评论 -
P1162 填涂颜色
#include#includeusing namespace std;int main(){ int n,t,a[50][50]={},di[4][2]={0,1,1,0,0,-1,-1,0};//方向 cin>>n; for (int i=1; i<=n; i++) { for (int j=1; j<=n; j++) {转载 2017-08-26 20:14:01 · 229 阅读 · 0 评论 -
P1443 马的遍历
#include #include #include #include using namespace std;struct xy{ int x,y;}node,Top;const int dx[4]={1,-1,2,-2};const int dy[4]={1,-1,2,-2};//虽说一共16个方向 但是在程序中有具体判断int a[401][401];bool b转载 2017-08-26 20:09:55 · 258 阅读 · 0 评论 -
洛谷P1141 01迷宫
#include using namespace std;struct node{ int x,y,s;}a[1000001];char map[1001][1001]; //map是地图int n,m,startx,starty,num,book[1001][1001],mark[1001][1001],ans[1000001]; //book用来标记一个点走过没有,ans用转载 2017-08-26 20:05:58 · 179 阅读 · 0 评论 -
算法竞赛入门经典 油田---经典的联通快问题
//题型:求联通块问题 #include#includeconst int maxn = 100 + 5;char pic[maxn][maxn];int m, n, idx[maxn][maxn];void dfs(int r, int c, int id) {//r:x,c:y,id表示记的数 if(r = m || c = n) return;//判越界 if(i原创 2017-08-22 20:35:07 · 277 阅读 · 0 评论 -
简易迷宫问题洛谷p1605
#includeusing namespace std;int i,j,k,m,n,a[6][6],sx,sy,fx,fy,o,p,t,ans;//按照题目定义即可 void go(int i,int j){ if (i==fx&&j==fy){ ans++; //到达终点计数器加一, return;} //1.判断环节:(1是否到终点! if (a[原创 2017-08-20 10:01:48 · 329 阅读 · 0 评论 -
广度优先搜索总结
模板代码:int di[4][2]={0,1,1,0,0,-1,-1,0};//方向定义队列进队while(队列不为空){ 取头元素; 搜索; 判重,判越界; 更新; 进队 ; 老元素出队; }原创 2017-08-31 11:21:16 · 264 阅读 · 0 评论 -
P1514 引水入城
【题目描述】 见链接P1514 引水入城 【分析】 bfs填色问题变式,如果从第一行能流到最后一行就保留,统计一下最后覆盖的区间是否覆盖满最后一行;然后运用贪心,选择连续的且覆盖最多的蓄水站即可,如果不满足,输出缺少的即可。 样例: 【参考代码】#include<iostream>#include<cstdio>#include<algorithm>#include<cstr原创 2017-09-03 15:44:49 · 220 阅读 · 0 评论