
ACM-搜索
文章平均质量分 50
ACM-搜索
nefu-ljw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2018 ICPC焦作站 F题 Honeycomb【bfs】
题目链接:https://codeforces.com/gym/102028/problem/F这题就是输入处理比较恶心,先写个gets(mp[x]+1) 本地没问题,oj的编译器直接报错,真玄学,后来改成cin.get加上getline就行了。我处理数组是把范围(4n+3,6n+3)映射到(n,m),最后就是bfs(之前竟然还想着最短路,压根没必要)还有就是vis数组清空写成for循环而不是memset,就能快一倍原创 2021-05-10 23:46:32 · 356 阅读 · 0 评论 -
2017 ICPC沈阳站 G题 Infinite Fraction Path【多源BFS+剪枝】
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6223思路用优先队列进行BFS,优先队列中记录当前点的层数、点的值、点的编号,按层数从小到大排序,若层数相同则按点值从大到小排序。最开始把数组中所有权值等于最大值的点放入优先队列 (相当于有多个起点,即多源BFS), 然后开始逐层扩展,考虑两个剪枝:同层只取所有权值等于最大值的点。(小于最大值的直接跳过,不再扩展)同层若出现了多个相同编号的点,只留一个。(因为本题中每个点的后继是唯一的,那么多个相同编原创 2021-05-08 14:11:02 · 369 阅读 · 0 评论 -
2019年第十届蓝桥杯决赛(国赛) C++大学A组 F题 大胖子走迷宫【基础搜索】
在线评测:AcWing 2548. 大胖子走迷宫思路这题就是一个简单的bfs。当时间>=2k,变成了11大小,就可以不用再原地等待了,其余情况都要把原地等待的状态入队。然后注意细节就是每次是先判断按照原长度走能不能到下一个点,然后再更新长度。AC代码#include <bits/stdc++.h>using namespace std;const int N=310;char s[N][N];int n,k;int dir[4][2]={0,1,0,-1,1,0,-1,原创 2020-11-13 11:45:54 · 902 阅读 · 0 评论 -
“科大讯飞杯”第十七届同济大学程序设计预选赛 D题 车辆调度【DFS+剪枝】
题目链接:https://ac.nowcoder.com/acm/contest/5477/D思路首先,这题的数据范围是非常小的,都是10以内的。所以可以直接暴力,具体就是用DFS暴力(递归)。那么关键就是写DFS函数,每次的DFS就是一个状态,每个状态就是一个图,然后我们在当前状态里遍历每个小车的位置,然后对于每个小车,进行4个方向的搜索,直到撞到障碍物就停下来。但是这里可以进行剪枝,不是每次都要搜四个方向,因为如果上次是右方向撞到了障碍物,那么这次就不用再搜右方向了,只要搜剩下三个方向就行(最开始原创 2020-05-10 23:22:49 · 478 阅读 · 0 评论 -
UCF Local Programming Contest 2017 D. Editor Navigation【BFS,注意细节】
题目链接:https://nanti.jisuanke.com/t/44820You are using a very simple text editor to create a document. You have typed in several lines, with the flashing cursor advancing as you type, but then you see...原创 2020-04-06 21:59:41 · 507 阅读 · 0 评论 -
递归水题(一年前写的)
洛谷 P1010 幂次方#include <bits/stdc++.h>using namespace std;int n,k,i,a[31];void excel(){ a[0]=1; for(i=1;i<=30;i++) a[i]=a[i-1]*2;}void f(int n){ while(n) { for(i=0;i<=30;i++) if(a[i]>n){k=i-1;break;}//k表示2的幂次原创 2020-03-02 22:12:46 · 285 阅读 · 0 评论 -
牛客小白月赛13 G题 小A与小B【双向广搜+简化】
题目传送门:https://ac.nowcoder.com/acm/contest/549/G思路把起点和终点放进同一个队列(实际上是两个队列),如果从C(或D)走过某个点并且这个点已经被D(或C)访问过了,说明他们能相遇,输出此时的步数即为答案。AC代码#include <bits/stdc++.h>using namespace std;const int N=1010...原创 2020-02-28 23:57:00 · 322 阅读 · 0 评论 -
【BFS练习】POJ 3278 Catch That Cow && CH2501 矩阵距离
POJ 3278 Catch That Cow用一个vis数组标记一下每个点是否被访问过,否则TLE或者MLE…#include <queue>#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N=1e5;int a,...原创 2019-11-09 15:55:44 · 390 阅读 · 0 评论 -
洛谷 P1605 迷宫【DFS基础题,注意回溯】
某天,本蒟蒻打开洛谷想刷几个水题找找自信,于是打开了此题, 洛谷 P1605 迷宫当时内心os:诶呀这数据可真小啊,不就是dfs入门嘛,看我5分钟AC,这水题真没意思…于是飞速打出“完美”的代码:#include <bits/stdc++.h>using namespace std;int n,m,xx,yy,t,newx,newy,beginx,beginy,endx,en...原创 2019-04-07 17:32:32 · 629 阅读 · 0 评论 -
BFS-广度优先搜索(2019.3.23训练)
这次就不按题目的顺序写了,按题目难度写吧。nefu 1700 营救-搜索BFS入门题,用队列实现BFS即可。优化:不需要写函数(因为不需要用递归),也不需要开vis数组标记每个点是否被访问,直接把原图走过的点变为墙即可。以下,33行代码,24ms通过9个数据,成功AC。#include <bits/stdc++.h>using namespace std;char a[1...原创 2019-03-24 10:30:59 · 538 阅读 · 0 评论 -
DFS-深度优先搜索(2019.3.16训练)【更新完成】
A题 迷宫寻路-搜索迷宫寻路-搜索Problem:ATime Limit:1000msMemory Limit:65536KDescriptionAC小公主很喜欢设计迷宫,她设计的迷宫只有两个口,一个入口,一个出口。但小公主有时候很调皮,她会让挑战者走不出迷宫。现在给你AC小公主的迷宫请你判断挑战者能否成功从出口走出迷宫,迷宫包证边界为障碍物,只有两个不同的入口。“#”代表障碍物,“...原创 2019-03-17 16:31:17 · 1018 阅读 · 0 评论