牛客
Celavia_yu
这个作者很懒,什么都没留下…
展开
-
最短路
最短路 题目在链接中。 首先看到这个题就是肯定能想到最短路的,但是呢,看看这个数据范围,如果把两点之间的边权存起来,200000*200000肯定是要爆了,这是我固化的用最短路的算法dijkstra来考虑,存起来嘛,然后关键来了,就是我们可以不存起来,而是边找边算。 到1号位置的距离,只需一个dis数组来存储,输入每条边的信息,分别用数组存起来,直接根据坐标来调用每条边的信息。 遍历n-1次,然后每次都要遍历m条边,直到这n-1次遍历中,有一回进来,找遍m条边都没有了更新的情况,那说明都已经是最小的了,停止原创 2020-09-30 16:28:36 · 127 阅读 · 0 评论 -
牛客算法练习——「金」点石成金(dfs)
「金」点石成金 题意思路:按顺序来进行两种操作:一种是财富+a,魔法-b(若不够减则变成0),另一种是财富-d(若不够减则变成0),魔法+c。 这个题可以用dfs!不是只有告诉方向才能用dfs,有不同的可能 ...原创 2020-08-02 15:57:50 · 396 阅读 · 0 评论 -
牛客算法练习——走出迷宫(dfs/bfs)
走出迷宫 题意思路: 代码bfs:遇到的问题 :出现段错误,可能是爆栈了, 然后改了函数bfs遇到‘E’就直接返回true。 #include <bits/stdc++.h> using namespace std; char mp[105][105]; int dis[105][105]; int n,m; typedef struct E { int x,y; } r; r s; r e; int dir[4][2]= {{0,1},{1,0},{0,-1},{-1,0}}; b原创 2020-07-14 11:30:52 · 638 阅读 · 0 评论 -
牛客算法练习——Jelly(bfs)
Jelly 题意思路: BFS适合此类题目:给定初始状态跟目标状态,要求从初始状态到目标状态的最短路径。 就是找到一个最短路(吃的果冻最少),这个题就是一个三维的bfs,六个方向。 bfs的实现过程个人理解(可不看):bfs是宽(广)度优先搜索,且所有已被走过的点(不论被谁走过,被哪个方向来的走过)都会被标记掉,即一个点在bfs搜索过程中,或是说,在queue栈内只可能存在一次。 dis标记已经走过的点,先到先得,bfs找的就是最短路径,有多种可能到同一个位置,就是先到先得,已被标记你就走不通了,因为如原创 2020-07-14 10:15:11 · 245 阅读 · 0 评论