首页 > 其他分享 >剑指13:机器人的运动范围

剑指13:机器人的运动范围

时间:2023-08-15 22:45:18浏览次数:34  
标签:13 return get int 机器人 dfs vis ans 范围

dfs:

代码比bfs简洁一点,稍微比bfs快一点。

class Solution {
private:
    int res = 0;
    int get(int x) {
        int ans = 0;
        while(x) {
            ans += x % 10;
            x /= 10;
        }
        return ans;
    }
    void dfs(vector<vector<bool>> &vis, int x, int y, int m, int n, int k) {
        // 注意判断条件中vis[x][y]一定要写在后面
        if(x < 0 || x >= m || y < 0 || y >= n || get(x)+get(y) > k || vis[x][y]) return;
        ++ res;
        vis[x][y] = true;

        dfs(vis, x + 1, y, m, n, k);
        dfs(vis, x, y + 1, m, n, k);

    }
public:
    int movingCount(int m, int n, int k) {
        vector<vector<bool>> vis(m, vector<bool>(n));
        dfs(vis, 0, 0, m, n, k);
        return res;
    }
};

bfs:

由于一开始队列至少要有(0,0),因此需要一开始对k是否等于0做特殊判断。

class Solution {
private:
    int get(int x) {
        int ans = 0;
        while(x) {
            ans += x % 10;
            x /= 10;
        }
        return ans;
    }
public:
    int movingCount(int m, int n, int k) {
        // 注意前面要加一个判断,因为在队列中至少要入队一个元素
        // 默认入队的{0, 0}满足k>0
        if(k == 0) return 1;
        queue<pair<int, int>> que;
        vector<vector<bool>> vis(m, vector<bool>(n));
        // 默认(0,0)已经入队
        int res = 1;
        que.push({0, 0});
        int dx[2] = {1, 0};
        int dy[2] = {0, 1};
        vis[0][0] = true;
        while(!que.empty()){
            auto [x, y] = que.front();
            que.pop();
            for(int i = 0; i < 2;  i++ ) {
                int tx = x + dx[i], ty = y + dy[i];
                if(tx >= 0 && tx < m && ty >= 0 && ty < n && get(tx) + get(ty) <= k && !vis[tx][ty]) {
                    que.push({tx, ty});++ res;
                    vis[tx][ty] = true;
                }
            }
        }
        return res;
    }
};

 

标签:13,return,get,int,机器人,dfs,vis,ans,范围
From: https://www.cnblogs.com/luxiayuai/p/17632644.html

相关文章

  • 机器人编程教程5使用Git和SD卡副本备份代码
    5使用Git和SD卡副本备份代码在本章中,您将学习到以下内容:代码是如何破坏或丢失的策略1-将代码保存在电脑上并上传策略2:使用Git回溯历史策略3-制作SD卡备份5.1代码是如何破坏或丢失的代码和它的近亲--配置,都需要时间和艰苦的努力。代码需要配置才能运行,例如Ra......
  • [ABC134F] Permutation Oddness 题解
    题面定义一个\(1\simn\)的排列\(p\)的「怪异度」为\[\sum_{i=1}^n\left\lvertp_i-i\right\rvert\]求「怪异度」为\(k\)的\(1\simn\)的排列数,答案对\(10^9+7\)取模。题解考虑转化计算怪异度的过程,我们将值\(p_i\)排列在左侧,将下标\(i\)排列在右侧,构成一个......
  • [ABC134F] Permutation Oddness
    题目大意定义一个\(1\simn\)的排列\(p\)的「怪异度」为\[\sum_{i=1}^n|p_i-i|\]求「怪异度」为\(m\)的\(1\simn\)的排列数,答案对\(10^9+7\)取模。思路考虑把\(p_i\)和\(i\)看作小球与盒子,方便题意理解。考虑球与盒子的匹配。假设球在左侧,盒子在右侧,他们......
  • Python小项目:利用tkinter与图灵机器人制作智能聊天系统
    文章目录1前言2代码分模块讲解2.1导入相应的库2.2创建机器人对象2.3创建信息交互过程对象2.4页面创建对象3整体代码4结语1前言在本项目中,我们将探索如何使用Python的tkinter库以及图灵机器人API来构建一个智能聊天系统。本项目的初衷是通过实际操作,结合GUI编程和API调用......
  • HDU 5313
    TheshortestproblemTimeLimit:3000/1500MS(Java/Others)  MemoryLimit:65536/65536K (Java/Others)TotalSubmission(s):1484  AcceptedSubmission(s):686ProblemDescriptionInthisproblem,weshouldsolveaninterestinggame.Atfirst,we hav......
  • 《Java编程思想第四版》学习笔记13
    //:Frog.java//TestingfinalizewithinheritanceclassDoBaseFinalization{publicstaticbooleanflag=false;}classCharacteristic{Strings;Characteristic(Stringc){s=c;out.println("Creating......
  • P1355 神秘大三角
    Smiling&Weeping----相同的夜让相同的树林泛白。彼时,我们也不再相似如初。题目链接:P1355神秘大三角-洛谷|计算机科学教育新生态(luogu.com.cn)题目:#神秘大三角##题目描述判断一个点与已知三角形的位置关系。##输入格式前三行,......
  • 世微AP2813 平均电流双路降压恒流驱动器 LED储能电源驱动指示灯IC 可恒流可爆闪 可双
    产品描述AP2813是一款双路降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V输入的高精度降压LED恒流驱动芯片。内置功率管输出最大功率可达12W,最大电流1.2A。AP2813一路直亮,另外一路通过MODE1切换全亮,爆闪。AP2813工作频率固定在150KHZ左右,同时内置抖频电路,可......
  • i7 13700h和i7 11800h性能差距 i713700h和11800h评测
    i713700h采用10纳米制作工艺最高睿频5GHz十四核心二十线程三级缓存24MB热设计功耗(TDP)45W支持最大内存64GB内存类型DDR43200MHzDDR55200MHz集成显卡IntelIrisXeGra选i713700H还是i711800h这些点很重要看过你就懂了 http://www.adiannao.cn/dyi7-11800H配......
  • Programming abstractions in C阅读笔记p111-p113: boilerplate
    《ProgrammingAbstractionsInC》学习第47天,p111-p113,总结如下:一、技术总结1.boilerplate/**File:random.h*Version:1.0*LastmodifiedonFriJul2216:44:361994byeroberts*-----------------------------------------------------*Thisinterfacepr......