
搜索
算法
黑谷小健
一定要开心鸭
展开
-
2018年全国多校算法寒假训练营练习比赛(第四场) A 石油采集 【二分匹配+DFS】
题意:随着海上运输石油泄漏的问题,一个新的有利可图的行业正在诞生,那就是撇油行业。如今,在墨西哥湾漂浮的大量石油,吸引了许多商人的目光。这些商人们有一种特殊的飞机,可以一瓢略过整个海面20米乘10米这么大的长方形。(上下相邻或者左右相邻的格子,不能斜着来)当然,这要求一瓢撇过去的全部是油,如果一瓢里面有油有水的话,那就毫无意义了,资源完全无法利用。现在,商人想要知道,在这片区域中,他可以最多得到多少瓢油。地图是一个N×N的网络,每个格子表示10m×10m的正方形区域,每个区域都被标示上了是油还是水。原创 2022-03-23 21:58:32 · 496 阅读 · 0 评论 -
题解报告:P1434 [SHOI2002]滑雪
链接:zzz题意:思路:dfs+记忆化原本应该每个点都去搜,但是会超时,所以用记忆化搜索把答案存储在数组里,保证复杂度不会太高。自己的问题,没有想过用返回值来存答案,dfs里的每一步都挺妙的。#include<bits/stdc++.h>using namespace std;const int maxn=105;int a[maxn][maxn];int ans[maxn][maxn];int x1[5]={ 0,1,-1,0,0};int y11[5]={0,0原创 2021-05-24 16:50:39 · 163 阅读 · 0 评论 -
题解报告:P1141 01迷宫(BFS好题+并查集)
机票题意:思路:首先发现其实就是求连通块,如果是bfs做,明确每次去搜索会t,那么就要存个每个连通块的答案然后再输出,又要想好如果都不连通的情况得开1e6的数组,细节超多的一勾八题。#include<bits/stdc++.>using namespace std;const int maxn=1005;queue<pair<int ,int >>mo;int n;int a[maxn][maxn];int ans[maxn][maxn];int a原创 2021-05-18 21:36:17 · 153 阅读 · 0 评论 -
P1135 奇怪的电梯(BFS+待补)
飞机票题意:思路:超级经典的一道题,有多种解法BFS开个标记数组,用队列,然后就判断找下去,找到就跳出,就能保证用的次数最少,没找到则是-1。#include<bits/stdc++.h>using namespace std;queue<pair<int ,int >>mo;const int maxn=20005;int a[maxn];int ans[maxn];int sf[maxn];int n;bool jg(int d){原创 2021-05-17 22:03:43 · 233 阅读 · 0 评论 -
题解报告:P1443 马的遍历(BFS)
链接zz题意:思路:对于这题的bfs简单来说就是把从当前位置能经过的所有点逐个入队,然后对八个方向的走法进行能不能走的判断,判断完当前位置就pop,并且刷新它的答案,当然这题也能用dfs。然后用到的方法有队列里套pair,其实开个结构体存x和y的值也行,然后就是格式的输出%5d就是宽度为5,%-5d就是向左对齐啦.#include<bits/stdc++.>using namespace std;const int maxn=405;queue<pair<int ,原创 2021-05-17 19:59:09 · 158 阅读 · 0 评论 -
题解报告:P1605 迷宫(dfs+回溯)
地址题意:思路:dfs搜索路径,经过后就标机保证不回头,走不了的时候回到上层得取消此时的标机完成回溯。#include<bits/stdc++.h>using namespace std;const int maxn=7;int a[maxn][maxn];bool flag[maxn][maxn];int x1[6]={ 0,-1,1,0,0};int y11[6]={0,0,0,1,-1};int n,m,t,sx,sy,fx,fy;int ans;bool jg(原创 2021-05-14 16:54:55 · 146 阅读 · 0 评论 -
题解报告:P1506 拯救oibh总部+P1162 填涂颜色(染色法dfs)
飞机票这道题是一道挺基础的染色题思路:搜索最外层,如果有空洪水就可以沿着空一直往里走,所以要dfs搜索一下。#include<bits/stdc++.>using namespace std;const int maxn=505;int a[maxn][maxn];int kx[5]={0,1,-1,0,0};int ky[5]={0,0,0,1,-1};int x,y;bool jg(int i,int j){ if(i>=1&&i<=x原创 2021-05-12 20:54:31 · 173 阅读 · 0 评论 -
题解报告:P1101 单词方阵(dfs+方向搜索)
飞机票题意:思路:搜索从y开始的八个方向看看能不能搜到yizhong搜到了就标机,然后输出标机的字符即可#include<bits/stdc++.>using namespace std;const int maxn=105;int n;char c1[maxn][maxn];char ans[8]={'y','i','z','h','o','n','g'};int x1[9]={0,1,0,1,-1,0,-1,1,-1};int y11[9]={0,0,1,1,0,-1,-原创 2021-05-13 18:54:54 · 168 阅读 · 0 评论 -
题解报告:POJ 2386--Lake Counting(BFS+DFS)
传送门DescriptionDue to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square contains either water (‘W’) or dry land (’.’). Farm原创 2021-04-05 16:47:22 · 184 阅读 · 0 评论