华为od欢快的周末

2023-11-10

public class FunnyWeeks {
    static final int N = 110;
    static int[][] arr = new int[N][N];
    static Map<String, Integer> map1 = new HashMap<>(),map2 = new HashMap<>();
    static int[] dx = new int[]{-1, 0, 1, 0}, dy = new int[]{0, 1, 0, -1};
    static int n, m;

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        n = cin.nextInt();
        m = cin.nextInt();
        int[] pos = new int[4];
        for (int i = 0,k = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                arr[i][j] = cin.nextInt();
                if(arr[i][j] == 2) {
                    pos[k++] = i;
                    pos[k++] = j;
                }
            }
        }
        dfs(pos[0],pos[1],map1);
        dfs(pos[2],pos[3],map2);
        int res = 0;
        if(map1.size() == 0 || map2.size() == 0) System.out.println(0);
        else {
            for(Map.Entry<String,Integer> entry : map1.entrySet()) {
                String key = entry.getKey();
                if(map2.containsKey(key)) res++;
            }
            System.out.println(res);
        }
    }

    public static void dfs(int x, int y,Map<String,Integer> map) {
        if (arr[x][y] == 3) {
            String key = get(x,y);
            map.put(key, map.getOrDefault(key, 0) + 1);
            return;
        }
        int k = arr[x][y];
        arr[x][y] = -1;
        for (int i = 0; i < 4; i++) {
            int a = dx[i] + x, b = dy[i] + y;
            if (a >= 0 && a < n && b >= 0 && b < m && arr[a][b] != 1 && arr[a][b] != -1 && !map.containsKey(get(a,b))) {
                dfs(a, b,map);
            }
        }
        arr[x][y] = k;
    }
    public static String get(int x,int y) {
        return  String.valueOf(x) + "@" + String.valueOf(y);
    }
}

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

华为od欢快的周末 的相关文章

随机推荐

  • 前端面试题----第1天

    文章目录 HTML link和 import的区别 CSS 圣杯布局和双飞翼布局 JS 用递归算法实现 数组长度为5且元素的随机数在2 32间不重复的值 HTML link和 import的区别 1 link是HTML标签 import是c
  • 数据链路层以太网帧格式------理解MTU的定义和最大值(1500字节)

    在前面的文章中 我们讨论了IP的包格式 也说过TCP UDP的包格式 无论是TCP还是UDP 最终还是封装成了IP包 我们知道 IP包的最大程度为65535个字节 于是很多初学者会误解 以为这65535字节的IP包数据 是直接被数据链路层套
  • C基础知识总结(全)

    目录 第一个程序hello world说明 计算机中的数据存储 数值型数据的存储 非数值型数据的存储 词法符号 关键字 标识符 数据类型 数据类型的分类 整数类型 浮点类型 实型 小数 空类型 原码 反码 补码 常量 实型常量 字符常量 字
  • 动力节点Java实用小技能,手把手带你生成二维码

    随着互联网的快速发展 二维码逐渐成为了主流 日常生活已经离不开二维码了 它们变得越来越有用 从候车亭 产品包装 家装卖场 汽车到很多网站 都在自己的网页二维码 让人们快速找到它们 随着智能手机的用户量日益增长 二维码的使用正在呈指数上升 让
  • 485集线器

    485集线器ZLAN9480A是一款可通过一路RS485主口扩展出8路RS485从口的工业级隔离型8口RS485集线器 可以有效的实现RS485网络的中继 扩展与隔离 ZLAN9480A的主口端提供隔离型RS485 从口端扩展出8路隔离型R
  • C++基础入门(数据类型)

    数据类型 整型 sizeof关键字 实型 浮点数 字符型 转意字符 字符串 布尔类型 数据的输入 C 规定在创建一个变量或者常量时 必须要指定出相应的数据类型 否则无法给变量分配内存 整型 作用 整型变量表示的是整数类型的数据 C 中能够表
  • FreeSwitch中配置网关的方法

    在VOIP通信系统中 经常要用到网关 那么网关怎么和FreeSwitch在一起配合使用 有如下需求 有一虚拟运营商 即 SIP PROVIDER 提供拨打外线的功能 从该处购买一 SIP 账号 具体配置信息如下 用户名 user 密码 pa
  • 今天这个是mybatis与spring的整合

    今天这个是mybatis与spring的整合 依旧是一个查询的demo 首先是demo的结构 然后是我的jdbc properties jdbc driverClassName com mysql jdbc Driver jdbc url
  • 10-js逆向(数据加密)

    简单的加密 案例一 返来的数据加密 我们对他进行解密 拿到数据 看到返回的数据加密了 还是直接搜索 也可以直接搜索json parse 可以看到了数据在这个里面已经加密 所以下一步 找他的调用栈 可以看到数据被传在了这个里面 直接进行扣js
  • 基于Spark 的电影推荐系统

    基于大数据的电影推荐系统主要分为两部分 基于历史数据的离线处理和基于实时流的实时处理 离线处理是基于历史数据 实时处理是结合历史数据和实时采集的数据 运用协同过滤算法训练推荐模型 预测各个用户未看电影的评分 为用户推荐评分最高的前10部 系
  • Fiscov3.0.0-rc3底链+合约部署

    一 主机部署基础环境和配置 关闭防火墙和selinux sed s SELINUX enforcing SELINUX disabled g etc selinux config 预览 sed i s SELINUX enforcing S
  • Tracy 小笔记 Vue - 事件

    v on 事件监听 v on 绑定事件监听 缩写 v on 函数参数 在事件监听的时候 如果函数没有参数 那么调用的时候可以不加括号 也可以加括号 如 click add add 如果函数有参数 我们调用的时候加写空括号 那么这个参数的值是
  • Java数组实现循环队列的两种方法

    版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csdn net Victor Cindy1 article details 46604575 用java实现循环队列的方法 1 增加一个属性size用来记录目前的元
  • TS模块化中会遇到的问题

    前言 当TS 使用 ES6 模块化标准 而编译目标使用 CommonJs 时 导入模块时出现问题 tsconfig json compilerOptions target es2016 配置编译目标代码的版本标准 module Common
  • python系列——yaml

    基本语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab 只允许空格 缩进的空格数不重要 只要相同层级的元素左对齐即可 表示注释 数据类型 YAML 支持以下几种数据类型 对象 键值对的集合 又称为映射 mapping 哈希 has
  • linux离线部署python环境

    在实际生产中 经常需要离线在服务器上部署python环境 第一步 安装python环境 选择安装miniconda3作为python环境 下载Miniconda3 latest Linux x86 64 sh 之后安装即可 习惯将路径保存为
  • 找出数组中重复数字

    描述 查找数组中的重复元素情况 时间复杂度为o n 空间复杂度为o 1 数组的大小为n 数组元素值大小为0到n 1 比如 n 4 2 3 1 2 3 思路一 采用记录的思路访问 如果array i 代表一个位置 如果array array
  • Linux内核提权漏洞(Dirty-pipe)复现

    前言 CVE 2022 0847 是存在于 Linux内核 5 8 及之后版本中的本地提权漏洞 攻击者通过利用此漏洞 可覆盖重写任意可读文件中的数据 从而可将普通权限的用户提升到特权 root CVE 2022 0847 的漏洞原理类似于
  • vue高德地图marker批量标记与InfoWindow提示框

    一 前言 由于数据量大 如果一个一个添加marker会造成页面卡顿 所以在此就使用了批量标记 特此研究出一下几种方法 在高德平台获取key 高德开放平台 高德地图API 二 批量添加marker标记 1 海量点标记 MassMarks 优点
  • 华为od欢快的周末

    public class FunnyWeeks static final int N 110 static int arr new int N N static Map