BFS题单总结

2023-05-16

BFS题单汇总

此文章用来记录遇到的经典的从某个点到达某个边界或者指定点的BFS题目,将持续更新

1926. 迷宫中离入口最近的出口

class Solution {
	// n,m代表给定二维数组或者二重List<List<Integer>>这种的长和宽
	// x0,y0代表给定的起点坐标
	// dir数组代表的是进行上下左右搜索的坐标方向
    int n;
    int m;
    int x0;
    int y0;
    int[][] dir = {{1,0}, {-1, 0}, {0, -1}, {0,1}};
    public int nearestExit(char[][] maze, int[] entrance) {
        n = maze.length;
        m = maze[0].length;
        x0 = entrance[0];
        y0 = entrance[1];
        return bfs(maze, x0, y0);
    }

    public int bfs(char[][] maze, int i, int j) {
        Queue<int[]> q = new ArrayDeque<>();
        // 添加起始点坐标以及耗费步数
        q.offer(new int[]{x0, y0, 0});
        // 已经遍历过起始点,标记起始点为不可达
        maze[x0][y0] = '+';
        while (!q.isEmpty()) {
            int[] arr = q.poll();
            int tx = arr[0];
            int ty = arr[1];
            int step = arr[2];
            // 如果(tx,ty)坐标与(i,j)坐标不是同一个坐标,且(tx,ty)已经在边界,那就直接返回step步数
            if ( !(tx == i && ty == j) && (tx == 0 || tx == n - 1|| ty == 0 || ty == m - 1) ) {
                return step;
            }
            // 进行方向遍历
            for (int k = 0 ; k < 4; k++) {
            // 上下左右方向,其中dx代表横坐标,dy代表纵坐标
                int dx = tx + dir[k][0];
                int dy = ty + dir[k][1];
                // 如果(dx,dy)在(0,0)~(n - 1, m - 1)范围内,且(dx,dy)是可以继续遍历的,那就将当前坐标(dx,dy)添加到队列里,并标记当前坐标已经遍历过了
                if (dx >= 0 && dx < n && dy >= 0 && dy < m && maze[dx][dy] == '.') {
                    q.offer(new int[]{dx, dy, step + 1});
                    maze[dx][dy] = '+';
                }
            }
        }
        // 如果无法到达指定位置,那就返回-1
        return -1;
    }
}

1970.你能穿过矩阵的最后一天

class Solution {
    public int latestDayToCross(int row, int col, int[][] cells) {
        int n = row;
        int m = col;
        int ans = 0;
        int l = 0;
        int r = n * m;
        int[][] dir = {{0,1}, {0,-1}, {1,0}, {-1,0}};
        while (l <= r) {
            int mid = l + r >> 1;
            int[][] grid = new int[n][m];
            for (int i = 0; i < n; i++) {
                Arrays.fill(grid[i], 0);
            }
            for (int i = 0; i < mid; i++) {
                grid[cells[i][0] - 1][cells[i][1] - 1] = 1;
            }
            Queue<int[]> q = new ArrayDeque<>();
            for (int j = 0; j < m; j++) {
                if (grid[0][j] == 0) {
                    q.offer(new int[]{0,j});
                    grid[0][j] = 1;
                }
            }
            boolean f = false;
            while (!q.isEmpty()) {
                int[] arr = q.poll();
                int tx = arr[0];
                int ty = arr[1];
                for (int k = 0 ; k < 4 ; k++) {
                    int dx = dir[k][0] + tx;
                    int dy = dir[k][1] + ty;
                    if (dx >= 0 && dx < n && dy >= 0 && dy < m && grid[dx][dy] == 0) {
                        if (dx == n - 1) {
                            f = true;
                            break;
                        }
                        q.offer(new int[]{dx, dy});
                        grid[dx][dy] = 1;
                    }
                }
            }
            if (f) {
                l = mid + 1;
                ans = mid;
            } else {
                r = mid - 1;
            }
            
        }
        return ans;
    }
}

P1443 马的遍历

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Queue;

public class Main {


    static int n;
    static int m;
    static int x0;
    static int y0;
    static Queue<int[]> q = new ArrayDeque<>();
    static int[][] f;
    static int[][] dir = {{0,1}, {0,-1}, {1,0}, {-1,0}};
    static int[][] directions = {{-1, 2},{-2, 1},{-2, -1}, {-1, -2}, {1, 2},{2, 1}, {2, -1}, {1,-2} };
    static boolean[][] vis;

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] s = reader.readLine().split(" ");
        n = Integer.parseInt(s[0]);
        m = Integer.parseInt(s[1]);
        x0 = Integer.parseInt(s[2]);
        y0 = Integer.parseInt(s[3]);
        vis = new boolean[n + 10][m + 10];
        f = new int[n + 10][m + 10];
        for (int[] x : f) {
            Arrays.fill(x, -1);
        }
        // x0, y0添加到队列,且标记当前(x0,y0)已经遍历过了
        q.offer(new int[]{x0, y0});
        f[x0][y0] = 0;
        vis[x0][y0] = true;
        bfs(x0, y0);
        for (int i = 1 ; i <= n ; i++) {
            for (int j = 1; j <= m ; j++) {
                System.out.printf("%-5d",f[i][j]);
            }
            if (i != n) {
                System.out.println();
            }
        }
    }

    public static void bfs(int i,int j) {
        while (!q.isEmpty()) {
            int[] arr = q.poll();
            int tx = arr[0];
            int ty = arr[1];
            for (int k = 0; k < directions.length; k++) {
                int dx = tx + directions[k][0];
                int dy = ty + directions[k][1];
                // 判断符合可以继续遍历到的添加到队列,同时可以继续遍历到的步数为上次可以遍历到的位置(tx,ty)的步数加1
                if (dx >= 1 && dx <= n && dy >=1 && dy <= m && !vis[dx][dy]) {
                    q.offer(new int[]{dx, dy});
                    vis[dx][dy] = true;
                    f[dx][dy] = f[tx][ty] + 1;
                }
            }
        }
    }

}

class Read {

    StreamTokenizer st = new StreamTokenizer(new InputStreamReader(System.in));

    public int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    public double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    public String nextString() throws IOException {
        st.nextToken();
        return st.sval;
    }

}

P1747 好奇怪的游戏

题目背景

《爱与愁的故事第三弹·shopping》娱乐章。

调调口味来道水题。

题目描述

爱与愁大神坐在公交车上无聊,于是玩起了手机。一款奇怪的游戏进入了爱与愁大神的眼帘:***(游戏名被打上了马赛克)。这个游戏类似象棋,但是只有黑白马各一匹,在点x1,y1和x2,y2上。它们得从点x1,y1和x2,y2走到1,1。这个游戏与普通象棋不同的地方是:马可以走“日”,也可以像象走“田”。现在爱与愁大神想知道两匹马到1,1的最少步数,你能帮他解决这个问题么?

输入格式

第1行:两个整数x1,y1

第2行:两个整数x2,y2

输出格式

第1行:黑马到1,1的步数

第2行:白马到1,1的步数

样例 #1

样例输入 #1

12 16
18 10

样例输出 #1

8 
9

提示

100%数据:x1,y1,x2,y2<=20


import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Queue;

public class Main {


    static int x0;
    static int y0;
    static int x1;
    static int y1;
    static int[][] dir = {{1, -2}, {1, 2}, {-1, -2}, {-1, 2}, {2, -1}, {2, 1}, {-2, -1}, {-2, 1},{2,2}, {2,-2},{-2,2},{-2,-2}};
    static int N = 60;
    static boolean[][] vis = new boolean[N][N];
    static Queue<int[]> q = new ArrayDeque<>();

    public static void main(String[] args) throws IOException {
        Read read = new Read();
        x0 = read.nextInt();
        y0 = read.nextInt();
        x1 = read.nextInt();
        y1 = read.nextInt();
        System.out.println(bfs(1,1, x0, y0));
        while (!q.isEmpty()) {
            q.poll();
        }
        for (boolean[] v : vis) {
            Arrays.fill(v, false);
        }
        System.out.println(bfs(1,1, x1, y1));
    }

    public static int bfs(int i, int j, int x, int y) {
        q.offer(new int[]{i, j, 0});
        vis[i][j] = true;
        while (!q.isEmpty()) {
            int[] arr = q.poll();
            int tx = arr[0];
            int ty = arr[1];
            int step = arr[2];
            for (int k = 0; k < dir.length; k++) {
                int dx = tx + dir[k][0];
                int dy = ty + dir[k][1];
                if (dx >= 1 && dx <= 50 && dy >= 1 && dy <= 50 && !vis[dx][dy]) {
                    q.offer(new int[]{dx, dy, step + 1});
                    vis[dx][dy] = true;
                }
                if (tx == x && ty == y) {
                    return step;
                }
            }
        }
        return -1;
    }

}

class Read {

    StreamTokenizer st = new StreamTokenizer(new InputStreamReader(System.in));

    public int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    public double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    public String nextString() throws IOException {
        st.nextToken();
        return st.sval;
    }

}

P1746 离开中山路

题目背景

《爱与愁的故事第三弹·shopping》最终章。

题目描述

爱与愁大神买完东西后,打算坐车离开中山路。现在爱与愁大神在x1,y1处,车站在x2,y2处。现在给出一个n×n(n<=1000)的地图,0表示马路,1表示店铺(不能从店铺穿过),爱与愁大神只能垂直或水平着在马路上行进。爱与愁大神为了节省时间,他要求最短到达目的地距离(a[i][j]距离为1)。你能帮他解决吗?

输入格式

第1行:一个数 n

第2行~第n+1行:整个地图描述(0表示马路,1表示店铺,注意两个数之间没有空格)

第n+2行:四个数 x1,y1,x2,y2

输出格式

只有1行:最短到达目的地距离

样例 #1

样例输入 #1

3
001
101
100
1 1 3 3

样例输出 #1

4

提示

20%数据:n<=100

100%数据:n<=1000


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.ArrayDeque;
import java.util.Queue;

public class Main {


    static int n;
    static int N = 1010;
    static int[][] arr = new int[N][N];
    static boolean[][] vis = new boolean[N][N];
    static int[][] dir = {{1,0}, {-1,0}, {0,1}, {0,-1}};
    static Queue<int[]> q = new ArrayDeque<>();
    static int x0;
    static int y0;
    static int x;
    static int y;

    public static void main(String[] args) throws IOException {
        BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(read.readLine());
        for (int i = 1; i <= n; i++) {
            String s = read.readLine();
            for (int j = 1; j <= n; j++) {
                arr[i][j] = s.charAt(j - 1) - '0';
            }
        }
        String[] num = read.readLine().split(" ");
        x0 = Integer.parseInt(num[0]);
        y0 = Integer.parseInt(num[1]);
        x = Integer.parseInt(num[2]);
        y = Integer.parseInt(num[3]);
        q.offer(new int[]{x0, y0, 0});
        int res = dfs();
        System.out.println(res);
    }

    public static int dfs() {
       while (!q.isEmpty()) {
           int[] a = q.poll();
           int tx = a[0];
           int ty = a[1];
           int step = a[2];
           if (arr[tx][ty] == 1) {
               continue;
           }
           if (tx == x && ty == y) {
               return step;
           }
           vis[tx][ty] = true;
           for (int k = 0; k < 4; k++) {
               int dx = tx + dir[k][0];
               int dy = ty + dir[k][1];
               if (dx >= 1 && dx <= n && dy >= 0 && dy <= n && !vis[dx][dy] && arr[dx][dy] == 0) {
                   q.offer(new int[]{dx, dy, step + 1});
                   vis[dx][dy] = true;
               }
           }
       }
        return -1;
    }

}

P2298 Mzc和男家丁的游戏

题目背景

mzc与djn的第二弹。

题目描述

mzc家很有钱(开玩笑),他家有n个男家丁(做过上一弹的都知道)。他把她们召集在了一起,他们决定玩捉迷藏。现在mzc要来寻找他的男家丁,大家一起来帮忙啊!

由于男家丁数目不多,再加上mzc大大的找人【laopo】水平很好,所以一次只需要找一个男家丁。

输入格式

第一行有两个数n,m,表示有n行m列供男家丁躲藏,

之后n行m列的矩阵,‘m‘表示mzc,‘d’表示男家丁,‘#’表示不能走,‘.‘表示空地。

输出格式

一行,若有解:一个数sum,表示找到男家丁的最短移动次数。

若无解:输出“No Way!”。

样例 #1

样例输入 #1

5 6
.#..#.
....#.
d.....
#####.
m.....

样例输出 #1

12

提示

3=<M,n<=2000

由于mzc大大十分着急,所以他只能等待1S。

package luogu.bfs.p2298;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.PriorityQueue;

public class Main {

    static int N = 2010;
    static int n;
    static int m;
    // 设定起点(x0, y0)坐标
    static int x0;
    static int y0;
    static PriorityQueue<int[]> q = new PriorityQueue<>((o1, o2) -> o1[2] - o2[2]);
    static int[][] dir = {{-1,0}, {1,0}, {0,-1}, {0,1}};
    static boolean[][] vis = new boolean[N][N];
    static char[][] grid = new char[N][N];

    public static void main(String[] args) throws IOException {
        Read read = new Read();
        String[] s = read.getStringLine().split(" ");
        n = Integer.parseInt(s[0]);
        m = Integer.parseInt(s[1]);
        for (int i = 0; i < n; i++) {
            String str = read.getStringLine();
            for (int j = 0; j < m; j++) {
                grid[i][j] = str.charAt(j);
                if ('m' == grid[i][j]) {
                    x0 = i;
                    y0 = j;
                }
            }
        }
        int x = bfs();
        String res = x == -1 ? "No Way!" : String.valueOf(x);
        System.out.println(res);
    }

    public static int bfs() {
        q.offer(new int[]{x0, y0, 0});
        vis[x0][y0] = true;
        while (!q.isEmpty()) {
            int[] arr = q.poll();
            int tx = arr[0];
            int ty = arr[1];
            int step = arr[2];
            if (grid[tx][ty] == 'd') {
                return step;
            }
            vis[tx][ty] = true;
            for (int k = 0 ; k < 4; k++) {
                int dx = tx + dir[k][0];
                int dy = ty + dir[k][1];
                if (dx < 0 || dx >= n || dy < 0 || dy >= m ){
                   continue;
                }
                if (grid[dx][dy] == '#' || vis[dx][dy]) {
                    continue;
                }
                vis[dx][dy] = true;
                q.offer(new int[]{dx, dy, step + 1});
            }
        }
        return -1;
    }

}

class Read {

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    StreamTokenizer st = new StreamTokenizer(new InputStreamReader(System.in));

    public int nextInt() throws IOException {
        st.nextToken();
        return (int) st.nval;
    }

    public double nextDouble() throws IOException {
        st.nextToken();
        return st.nval;
    }

    public String nextString() throws IOException {
        st.nextToken();
        return st.sval;
    }

    public String getStringLine() throws IOException {
        return reader.readLine();
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BFS题单总结 的相关文章

  • 用python写DFS和BFS算法

    前言 xff1a 菜鸟学算法 加油 xff01 一 什么是DFS和BFS xff1f 1 BFS算法 xff1a 宽度优先搜索算法 xff08 又称广度优先搜索 xff09 是最简便的图的搜索算法之一 xff0c 这一算法也是很多重要的图的
  • bfs之走地图(迷宫)

    题目 xff1a 东东找妹纸 东东手里有一张神奇的地图 xff0c 通过地图可以找到妹子 xff01 地图显示 xff0c 0表示可以走 xff0c 1表示不可以走 xff0c 左上角是入口 xff0c 右下角是妹纸 xff0c 这两个位置
  • P1825 [USACO11OPEN]Corn Maze S——bfs

    USACO11OPEN Corn Maze S 题面翻译 奶牛们去一个 N M N times M N M 玉米迷宫 xff0c 2
  • 基于BFS的最短路径搜索[C++]

    基于C 43 43 实现BFS的最短路径搜索时 xff0c 可以使用STL中的优先队列priority queue xff0c 优先队列按照小顶堆 xff0c 即路径短的优先取出 其中节点可以用结构体定义 xff0c 结构体中存储节点的位置
  • 【leetcode】44. 通配符匹配(wildcard-matching)(BFS)[困难]

    链接 https leetcode cn com problems wildcard matching 耗时 解题 xff1a 4 5 h 题解 xff1a 36 min 题意 给定一个字符串 xff08 s xff09 和一个字符模式 x
  • C语言DFS和BFS解决迷宫问题

    C语言DFS与BFS 迷宫问题 题目描述 给定一个 N times MN M 方格的迷宫 xff0c 迷宫里有 TT 处障碍 xff0c 障碍处不可通过 在迷宫中移动有上下左右四种方式 xff0c 每次只能移动一个方格 数据保证起点上没有障
  • 2020.2.22 排位赛 G - Bucket Brigade(BFS)

    Bucket Brigade 题面 题目分析 BFS模板题 代码 span class token macro property span class token directive keyword include span span cl
  • 拓扑排序(广度优先搜索实现)

    有向无环图可以用来表示各种事物的顺序 比如工作顺序 一些事情必须在另一些事情完成之后才能开始进行 那么 为了获得正确的工作顺序 一件事情开始之前 必须保证它的前置条件全部满足 就需要用到拓扑排序 拓扑排序其实就是在有向无环图中 只要存在边
  • 图论(四)宽度优先搜索BFS

    宽度优先搜索 BFS Breadth First Search 是一个针对图和树的遍历算法 发明于上世纪50年代末60年代初 最初用于解决迷宫最短路径和网络路由等问题 对于下面的树而言 BFS方法首先从根节点1开始 其搜索节点顺序是1 2
  • hdu1253 胜利大逃亡(三维bfs索搜)

    http acm hdu edu cn showproblem php pid 1253 第一次做做三维的 思路跟二维的没有区别 这道题目第一次出现Memory Limit Exceeded 这种问题 找了很长时间才发现应该是先判断在存入
  • 璀璨光滑【牛客】【题意解析+BFS+贪心】

    题目链接 中文题意 表面平静 实则暗藏玄机 而打开本题的突破口 也确确实实就在于题目的描述 也就是说 这张图的边的数目是确定的 并且这是一张连通图 而且图上的个点每个点连接出去的边的数目都是条 因为每个数都刚好只与个数在二进制位上差1 那么
  • 八数码问题【康托展开+BFS】

    Vijos 题库 八数码问题 背景 Yours和zero在研究A 启发式算法 拿到一道经典的A 问题 但是他们不会做 请你帮他们 描述 在3 3的棋盘上 摆有八个棋子 每个棋子上标有1至8的某一数字 棋盘中留有一个空格 空格用0来表示 空格
  • LeetCode第127题解析

    给定两个单词 beginWord 和 endWord 和一个字典 找到从 beginWord 到 endWord 的最短转换序列的长度 转换需遵循如下规则 每次转换只能改变一个字母 转换过程中的中间单词必须是字典中的单词 说明 如果不存在这
  • 层序遍历与BFS广度(宽度)遍历搜索算法(C++)

    算法竞赛 file author jUicE g2R qq 3406291309 彬 bin 必应 一个某双流一大学通信与信息专业大二在读 brief 一直在算法竞赛学习的路上 copyright 2023 8 COPYRIGHT 原创技术
  • 【算法学习笔记】17:DFS与BFS

    1 DFS 深度优先搜索常用于解决需要给出所有方案的问题 因为它的搜索顺序就是能够得到一个完整的搜索路径 方案 后回退再去搜索其它的方案 1 1 例题 排列数字 由于要求所有排列的方案 可以每次从 1 n 1 n 1 n里拿一个数字 然后记
  • 剑指offer.13.机器人的运动范围之DFS、BFS搜索

    机器人的运动范围 前言 一 DFS 1 思想 2 源码 二 BFS 1 源码 2 改进源码BFS 总结 前言 对于矩阵搜索问题 就像图的搜索一样 熟练掌握DFS BFS是关键 一 DFS 1 思想 通过DFS去寻找满足条件的格子 而已经访问
  • 迷宫 蓝桥杯 602

    题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 1 的为障碍 标记为 0 的为可以通行的地方 010000 000100 001001 110000 迷宫的入口为左上
  • 第十届蓝桥杯省赛C++B组 迷宫

    试题 E 迷宫 本题总分 15 分 问题描述 下图给出了一个迷宫的平面图 其中标记为 1 的为障碍 标记为 0 的为可 以通行的地方 010000 000100 001001 110000 迷宫的入口为左上角 出口为右下角 在迷宫中 只能从
  • 深度、广度优先搜索

    文章目录 二 图的遍历 2 1 深度优先搜索 DFS DFS森林 应用 2 2 广度优先搜索 BFS 基本操作 应用 二 图的遍历 2 1 深度优先搜索 DFS DFS森林 Vertextype GetVex ALGraph G int v
  • 长草(Python)

    题目描述 小明有一块空地 他将这块空地划分为 n 行 m 列的小块 每行和每列的长度都为 1 小明选了其中的一些小块空地 种上了草 其他小块仍然保持是空地 这些草长得很快 每个月 草都会向外长出一些 如果一个小块种了草 则它将向自己的上 下

随机推荐

  • 有刷电机,无刷电机和电调的总结

    有刷直流电机工作原理 xff1a 有刷直流电机的主要结构就是定子 43 转子 43 电刷 xff0c 通过旋转磁场获得转动力矩 xff0c 从而输出动能 电刷与换向器不断接触摩擦 xff0c 在转动中起到导电和换相作用 有刷直流电机采用机械
  • leetcode刷题(五)——找出数组中唯一出现的数

    给定一个只包含整数的有序数组 nums xff0c 每个元素都会出现两次 xff0c 唯有一个数只会出现一次 xff0c 请找出这个唯一的数字 你设计的解决方案必须满足 O log n 时间复杂度和 O 1 空间复杂度 示例 1 输入 nu
  • leetcode刷题(六)——快乐数

    编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 xff1a 对于一个正整数 xff0c 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 xff0c 也可能是 无限循环 但始终变不到 1 如果这个
  • leetcode刷题(七)——移动零

    给定一个数组 nums xff0c 编写一个函数将所有 0 移动到数组的末尾 xff0c 同时保持非零元素的相对顺序 请注意 xff0c 必须在不复制数组的情况下原地对数组进行操作 示例 1 输入 nums 61 0 1 0 3 12 输出
  • STM32 HAL库 串口接收不定长数据(帧头)

    写的比较垃圾 xff0c 将就着用 欢迎各位大佬指导 xff0c 我这里要用串口中断接收两种帧头的数据 xff0c 1 以0x0D 0x0A为帧头的数据 2 xff0c 以0x55 0xA5为帧头的数据 两数据包帧头不同 大小不同 其中定义
  • freeRTOS系列教程之【第一章】FreeRTOS概述与体验

    文章目录 教程目录1 1 FreeRTOS目录结构1 1 FreeRTOS目录结构1 2 核心文件1 3 移植时涉及的文件1 4 头文件相关 1 4 1 头文件目录1 4 2 头文件 1 5 内存管理1 6 Demo1 7 数据类型和编程规
  • 【RTOS的最通俗理解】行业大佬用一篇文章带你快速理解RTOS

    文章目录 单片机 RTOS 架构 1 RTOS的概念 1 1 用人来类比单片机程序和RTOS 1 1 1 我无法一心多用1 2 2 我可以一心多用 1 2 程序简单示例 2 架构的概念 2 1 用人来类比电子产品2 2 要深入理解RTOS就
  • 开源网络模拟器ns-3 架构与实践

  • 四、freeRTOS_同步互斥与通信概述

    目录 1 同步与互斥的概念 2 同步的例子 xff1a 有缺陷 3 互斥的例子 xff1a 有缺陷 4 通信的例子 xff1a 有缺陷 5 FreeRTOS的解决方案 对应程序 xff1a 12 freertos example sync
  • 五、freeRTOS_队列的使用

    目录 1 队列的理论讲解 1 1 常规操作 2 队列的常规使用 3 队列集 1 队列的理论讲解 1 1 常规操作 队列的简化操如入下图所示 xff0c 从此图可知 xff1a 队列可以包含若干个数据 xff1a 队列中有若干项 xff0c
  • 从零开始的leetcode刷题(使用python)Day1

    从零开始用python刷leetcode xff0c 随手记录一些tips 1 哈希表 xff08 leetcode第一题两数之和 xff09 哈希表也叫作散列表 xff0c 数据结构提供了键 xff08 key xff09 和值 xff0
  • [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么 xff1f Sample Sample是单个数据 即有意义的数据的最小单位 训练数据集由许多Sample组成 batch batch是一个人为设定的超参数 batch的意思是 批
  • Windows开启ftp服务-使用Xlight FTP Server

    适用于windows系统 xff0c 使用Xlight FTP Server软件 下载地址 xff1a 点击此处下载 1 将下面的软件 xff0c 安装在电脑上 2 开启ftp服务 点击程序主界面左上角 xff0c 默认端口号为21 xff
  • 控制理论中的常用定义与定理

    以下内容摘自 应用非线性控制 对于自治系统 xff08 在本书中与定常系统等价 xff09 一句话总结 xff1a 初始状态的足够小能够保证系统状态范数的任意小 不变集理论可以在V导为半负定时推导出渐进稳定的结论 xff0c 但只适用于自治
  • centos8服务器安装nginx

    安装nginx 安装依赖包 yum span class token parameter variable y span span class token function install span gcc zlib zlib devel
  • 部署hexo遇到报错ERROR Deployer not found: git的解决办法

    部署hexo遇到报错ERROR Deployer not found git的解决办法 今天部署hexo的时候遇到一个报错 hexo c span class token operator amp amp span hexo g span
  • npm install hexo-renderer-sass时报错解决办法

    npm install hexo renderer sass时报错 在安装配置hexo博客的时候 xff0c 有的主题需要安装 span class token function npm span span class token func
  • 实用工具网站推荐

    速写板 可以随时开一个web网页进行书面草稿的网站
  • kaggle 免费gpu,optuna学习,python中*的用法

    kaggle import optuna def obj trial x 61 trial suggest float 34 x 34 7 7 y 61 trial suggest float 34 y 34 7 7 return x 1
  • BFS题单总结

    BFS题单汇总 此文章用来记录遇到的经典的从某个点到达某个边界或者指定点的BFS题目 xff0c 将持续更新 1926 迷宫中离入口最近的出口 span class token keyword class span span class t