
搜索
搜索题型题解
一只菜阿喵
一只菜阿喵的blog
展开
-
kuangbin带你飞——专题一 简单搜索(14)
kuangbin带你飞——专题一 简单搜索(14)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 2612 Find a wayVJ题目题解分别计算 yifenfei 和 Merceki 到达 KFC 所用的时间。ans = min { time(yifenfei) + time (Mercekei) }。AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 205原创 2021-07-08 16:12:16 · 114 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(13)
kuangbin带你飞——专题一 简单搜索(13)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 1495 非常可乐VJ题目HDU网址改动,VJ无法正常提交,附HDU新网址HDU新网址HDU题目题解类似Pots的题型,但是更简单。给一瓶容量为 S 的可乐,用两个容量分别为 N 和 M 的杯子以及可乐瓶本身将可乐平分。BFS记忆化搜索,遍历六个方向分别为 1 -> 2 , 1 -> 3 , 2 -> 1 , 2 -> 3 , 3原创 2021-07-06 18:48:52 · 120 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(12)
kuangbin带你飞——专题一 简单搜索(12)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:HDU 1241 Oil DepositsVJ题目HDU网址改动,VJ无法正常提交,附HDU新网址HDU新网址HDU题目题解这题类似连通图问题,判断几个油井是否属于同一个油田,并且输出油田数目。可以通过遍历所有的油井,如果该油井不属于任意一个油田(vis == 0),则对它进行BFS(广度优先搜索),寻找和他属于同一个油田的油井,并且使它们的标记vis都为 1。我原创 2021-07-05 20:32:37 · 113 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(11)
kuangbin带你飞——专题一 简单搜索(11)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3984 迷宫问题VJ题目题解典型的迷宫问题用BFS(广度优先搜索),难点在于将路线再输出出来。从结果回溯回去输出路线,可以使用递归DFS。AC代码#include <iostream>#include <queue>#include <cstring>using namespace std;// 点坐标结构体,p原创 2021-07-05 19:18:21 · 106 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(10)
kuangbin带你飞——专题一 简单搜索(10)专题网址:VJ网址 [kuangbin带你飞]专题1-23VJ题目UVA题目题解两次BFS(广度优先搜索),第一次先搜索可以着火的位置,并存储他们第一次着火的时间。注意可能有多个着火点。第二次搜索人是否可以通过,如果人通过该位置的时间 < 着火时间,则可以通过。注意队列的初始化AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 1e3原创 2021-07-08 11:09:27 · 140 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(8)
kuangbin带你飞——专题一 简单搜索(8)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3414 PotsVJ题目题解一种倒水问题,通过对两个瓶子每次进行一种操作接水(使A装满水),倒水(将A的水倒空),从A向B中倒水(在不浪费水的情况下,能倒多少倒多少),使得一个瓶子中的水量为目标水量。输出最快花费时间(BFS搜索时间)和路径(DFS回溯路径搭配数组BFS)。主要运用记忆化搜索。题目重点超出边界(i>=cnt)时,跳出循环不可到达目标水原创 2021-07-06 11:23:53 · 97 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(7)
kuangbin带你飞——专题一 简单搜索(7)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3087 Shuffle’m UpVJ题目题解暴力模拟该过程,在存入 map 容器之中,如果一种情况出现两次,跳出循环AC代码#include <iostream>#include <map>#include <cstring>#include <cstdio>using namespace std;//原创 2021-07-09 09:50:58 · 100 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(6)
kuangbin带你飞——专题一 简单搜索(6)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3126 Prime PathVJ题目题解题目要求,将一个四位数每次更改一个位置上的数字,并且要求改后的数字为素数,直到改完的数字为目标数字。输出最短的费用。经典BFS(广度优先搜索)题型,用地图数组num表示经过该点是所花费的费用,从起点入队,将分别更改四个位置的数字作为四个方向,向四个方向遍历,直到队空。最后地图数组num中存储的就是最少的花费。题目重点原创 2021-07-05 16:26:19 · 124 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(5)
kuangbin带你飞——专题一 简单搜索(5)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1426 Find The MultipleVJ题目题解这一题也是搜索题型,有BFS()和DFS()两种做法。但是BFS正常测试会TLE,BFS要想过需要用G++编译器BFS:数字1入队,在末尾加0(× 10),在末尾加1(× 10 + 1),入队,当满足条件ans % n == 0时,结束循环。伪AC代码#include <iostream>#i原创 2021-07-05 11:35:14 · 82 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(3)
kuangbin带你飞——专题一 简单搜索(3)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 3278 Catch That CowVJ题目题解经典二维搜索题型,在数轴上按照一定规则从一点到达另外一点,输出最短时间。这题我用的BFS(广度优先搜索),WA了几发,发现改一下搜索范围增加 0就AC了。起点入队,遍历三个方向(左右和传送),符合条件的入队,起点出队,循环操作,直到到达终点。AC代码#include <iostream>#incl原创 2021-07-05 10:58:01 · 113 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(2)
kuangbin带你飞——专题一 简单搜索(2)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 2251 Dungeon MasterVJ题目题解这一题是经典迷宫问题,只不过改成三维数组,我用到BFS(广度优先搜索)。建立队列queue,然后起点入队,从起点出发,遍历上下左右前后六个方向,将可到达的地点入队,起点出队。当到达终点时,结束队列循环,输出结果。AC代码#include <iostream>#include <algorit原创 2021-07-04 21:34:35 · 189 阅读 · 0 评论 -
kuangbin带你飞——专题一 简单搜索(1)
kuangbin带你飞——专题一 简单搜索(1)专题网址:VJ网址 [kuangbin带你飞]专题1-23题目来源:POJ 1321 棋盘问题VJ题目题解经典棋盘问题,我用的是DFS(深度优先搜索),按照行的规律,依次遍历,用vis(标记数组)标记已经被棋子占据的列。当k(棋子数目)等于0时,sum(方案数)加1。AC代码#include <iostream>#include <algorithm>#include <iomanip>#inc原创 2021-07-04 21:15:29 · 128 阅读 · 0 评论 -
简单的搜索——DFS(8)
简单的搜索——DFS(8)题目来源:洛谷 P1596 [USACO10OCT]Lake Counting S原题共十个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 105;// 地图数组char mp[maxn][maxn];// 标记数组int v[maxn][maxn];int n, m;// 方向数组int dx[8] = {0, 1, 1, 1, 0, -1, -原创 2021-06-12 01:05:08 · 277 阅读 · 0 评论 -
简单的搜索——遍历(7)
简单的搜索——遍历(7)题目来源:洛谷 P1101 单词方阵原题共五个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 105;// 地图数组和标记数组char mp[maxn][maxn], vis[maxn][maxn];int n;// 方向数组int dx[8] = {0, 1, 1, 1, 0, -1, -1, -1}, dy[8] = {1, 1, 0, -1, -1原创 2021-06-11 10:03:34 · 100 阅读 · 0 评论 -
简单的搜索——DFS(6)
简单的搜索——DFS(6)题目来源:洛谷 P1605 迷宫原题共十个测试点题解AC代码#include <bits/stdc++.h>using namespace std;const int maxn = 10;// 地图数组和标记数组// mp[x][y] == 0 时,表示不可通行int mp[maxn][maxn], vis[maxn][maxn];int ans = 0;// 起点坐标和终点坐标int sx, sy, ex, ey;int n, m;/原创 2021-06-11 09:21:16 · 107 阅读 · 0 评论 -
简单的搜索——DFS(5)
简单的搜索——DFS(5)题目来源:洛谷 P2036 [COCI2008-2009#2] PERKET原题共八个测试点题解WA代码#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fint n;int s[15], b[15];bool v[15];int c = 1, k = 0;int ans = inf;void init(){ memset(v, 0, sizeof(原创 2021-06-10 20:54:59 · 128 阅读 · 0 评论 -
简单的搜索——BFS(4)
简单的搜索——BFS(4)题目来源:洛谷 P2895 [USACO08FEB]Meteor Shower S原题共十四个测试点题解AC代码#include <bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3fconst int maxn = 3e2 + 5;// n 表示陨石数目,ma[x][y] 表示 (x,y) 位置的陨石落地时间// v[x][y] 表示 (x,y) 位置是否遍历int n, ma[ma原创 2021-06-10 20:20:10 · 99 阅读 · 0 评论 -
简单的搜索——深度优先搜索(DFS)(主要)(含BFS)(3)
简单的搜索——深度优先搜索(DFS)(3)题目来源:洛谷 P1135 奇怪的电梯原题共十个测试点题解WA代码1:#include <bits/stdc++.h>using namespace std;int n, s, e;int k[205];int ans = 0x3f3f3f3f;int vis[205];bool flag = 0;void dfs(int x, int step){ if (x == e) { flag =原创 2021-05-31 21:24:30 · 108 阅读 · 0 评论 -
简单的搜索——广度优先搜索(BFS)(2)
简单的搜索——广度优先搜索(BFS)(2)题目来源:洛谷 P1443 马的遍历原题共十个测试点题解AC代码:#include <bits/stdc++.h>using namespace std;const int maxn = 405;int n, m;// 起点坐标int si, sj;// 地图数组int a[maxn][maxn];// 方向数组int dx[10] = {0, 1, 2, 2, 1, -1, -2, -2, -1, 0}, dy[10]原创 2021-05-31 21:23:14 · 164 阅读 · 1 评论 -
简单的搜索——回溯,标记(1)
简单的搜索——回溯,标记(1)题目来源:洛谷 P1219 [USACO1.5]八皇后 Checker Challenge[原题]([P1219 USACO1.5]八皇后 Checker Challenge - 洛谷 | 计算机科学教育新生态 (luogu.com.cn))共八个测试点题解AC代码:#include <bits/stdc++.h>using namespace std;int visr[15], visc[15], visld[100], visrd[100];原创 2021-05-31 21:22:36 · 195 阅读 · 0 评论