搜索
DFS,BFS
llll215
这个作者很懒,什么都没留下…
展开
-
洛谷 P1101 单词方阵
第一次的错误代码:#include<stdio.h>int n;char zm[100][100];//输入的单词矩阵 char a[8]="yizhong";int xx[]={1,1,1,0,0,-1,-1,-1};int yy[]={1,0,-1,1,-1,1,0,-1};//八个摆放的方向 int vis[100][100];//标记 int mp[100][100];//染色 void dfs(int x,int y){ for(int i=0;i<原创 2022-01-12 14:46:26 · 237 阅读 · 2 评论 -
洛谷 P1443 马的遍历
到达某个点最少走几步,涉及广度优先搜索(BFS),要用到队列。做题思路:由输出的矩阵看出这个马只能按照象棋中的走法跳,由此可以定义一个移动的数组:int dir[8][2]={{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};//可以跳八个方向不能到达则输出 -1,那么可以用数组标记bool vis[410][410];不用数组标记也可以直接把矩阵初始化为-1,可用双重for循环,也可以用memset函数int原创 2022-01-13 16:29:41 · 543 阅读 · 0 评论 -
洛谷 P1162 填涂颜色
dfs熟练后做起来很快,所以没写什么注释了。做题思路:(将1组成的闭合圈内的0都填为2,只有一个闭合圈且圈内至少有一个0 ,围圈只走上下左右四个方向)那么就可以用反向思维,先把圈外所有的0搜出来并标记(用dfs,搜最外圈),再用双重循环把所有未标记的0换成2并输出即可。#include<iostream>using namespace std;int n;int mp[35][35];//1<=n<=30int dir[4][2]={{-1,0},{1,原创 2022-01-13 13:39:54 · 80 阅读 · 0 评论 -
洛谷 P2392 kkksc03考前临时抱佛脚
可以同时计算 2 道不同的题目,但是仅限于同一科必须一科一科的复习,求能够完成复习的最短时间这个可以用01背包问题,不过背包问题我还没学,就直接用的搜索找问题找了好一会儿,结果只是错在x>s[i]该成这之后交上去AC了#include<iostream>using namespace std;int s[10],a[30];//1<=s1,s2,s3,s4<=20int sum=0,l,r,mintime;void df...原创 2022-01-13 20:57:17 · 182 阅读 · 0 评论 -
洛谷 P1596 Lake Counting S
AC代码在最下面。做题记录:昨天没过的:今天重新理了下思路:水坑问题思路:用双重for循环搜索'W',搜到后cnt++然后用dfs搜索这个水坑占的所有格子,标记或换成'.',以免重复搜索,然后继续搜索下一个'W'主要是写好dfs函数把格子标记完又保证能搜到其他格子就有点麻烦要搜索八个方向错误代码:#include<iostream>#include<string.h>using namespace std;int n,m...原创 2022-01-12 22:06:01 · 240 阅读 · 0 评论