当前位置: 首页 > news >正文

教育网站解决方案免费自己制作网站

教育网站解决方案,免费自己制作网站,建设网站价格,如何在网站做引流文章目录 分值:200题目描述思路复杂度分析AC 代码 分值:200 题目描述 存在一个 m * n 的 二维数组只,其成员取值范围为0, 1, 2。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。而值为2的元素…

文章目录

      • 分值:200
      • 题目描述
      • 思路
      • 复杂度分析
      • AC 代码

分值:200

题目描述

存在一个 m * n 的 二维数组只,其成员取值范围为0, 1, 2。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。而值为2的元素,免疫同化。
将数组所有成员随机初始化只为02,再将矩阵的[0,0]元素修改成1,在经过足够长的时间后,求矩阵中有多少个元素是02(即02数量之和)。
输入描述:
输入的前两个数字是矩阵大小nm
接着输入nm列,表示矩阵信息。
输出描述:
返回矩阵中非 1的元素个数。

示例1
输入:
4 4
0 0 0 0
0 2 0 0
0 0 2 0
0 0 0 2
输出:
3
解释:
除了矩阵中 3 个值为2的元素,其他元素全部同化为1了。

示例2
输入:
4 4
0 2 0 0
0 2 0 0
0 2 0 0
0 2 0 0
输出:
12
解释:
只有第一列被同化为1了,第2、3、4列没有被同化,因为第二列全是值为2的元素,阻挡住同化了。

Tips:

  • 0 < m, n <= 30

思路

  • 将上下左右值为0的元素同化为1 这点可以联系到BFS,这是一道很经典的宽度优先搜索的题目,可以当做模板题进行练习。
  • [0, 0]开始出发,只有值为0的元素才能被同化,所以只将1周围的 0 元素放进队列,直到队列为空即可。
  • 答案要求返回矩阵中非 1的元素个数。可以在遍历的同时进行计算,每当有一个元素被同化,那么ans就减一。

复杂度分析

  • 时间复杂度: O ( n ∗ m ) O(n*m) O(nm),其中NM分别为矩阵的行长跟列长,每个位置只需要访问一次。
  • 空间复杂度: O ( n ∗ m ) O(n*m) O(nm),其中NM分别为矩阵的行长跟列长,用于存储矩阵信息。

AC 代码

C++ 版

#include <bits/stdc++.h>
using namespace std;
int main()
{int n, m, ans, dis[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};cin >> n >> m;vector<vector<int>> mx(n, vector<int>(m));for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){cin >> mx[i][j];}}mx[0][0] = 1;// 一开始 0 跟 2 的个数之和, 后面每次有同化的就 -1 即可ans = n * m - 1;queue<pair<int, int>> q;q.push({0, 0});while (!q.empty()){auto t = q.front();q.pop();for (int i = 0; i < 4; i++){int x = t.first + dis[i][0], y = t.second + dis[i][1];if (x >= 0 && x < n && y >= 0 && y < m && mx[x][y] == 0){mx[x][y] = 1;ans--;q.push({x, y});}}}cout << ans << endl;return 0;
}

JAVA 版

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int ans;int[][] dis = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int[][] mx = new int[n][m];for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {mx[i][j] = scanner.nextInt();}}mx[0][0] = 1;ans = n * m - 1;Queue<int[]> q = new LinkedList<>();q.add(new int[]{0, 0});while (!q.isEmpty()) {int[] t = q.poll();for (int i = 0; i < 4; i++) {int x = t[0] + dis[i][0];int y = t[1] + dis[i][1];if (x >= 0 && x < n && y >= 0 && y < m && mx[x][y] == 0) {mx[x][y] = 1;ans--;q.add(new int[]{x, y});}}}System.out.println(ans);}
}

Python 版

from collections import dequen, m = map(int, input().split())
ans = 0
dis = [[-1, 0], [1, 0], [0, -1], [0, 1]]mx = []
for _ in range(n):mx.append(list(map(int, input().split())))mx[0][0] = 1
ans = n * m - 1
q = deque([(0, 0)])while q:t = q.popleft()for i in range(4):x = t[0] + dis[i][0]y = t[1] + dis[i][1]if 0 <= x < n and 0 <= y < m and mx[x][y] == 0:mx[x][y] = 1ans -= 1q.append((x, y))print(ans)

文章转载自:
http://wanjiaspruit.rywn.cn
http://wanjiacurt.rywn.cn
http://wanjiatortrix.rywn.cn
http://wanjiaadvantaged.rywn.cn
http://wanjiahydride.rywn.cn
http://wanjiasizz.rywn.cn
http://wanjiaidoneity.rywn.cn
http://wanjiajosue.rywn.cn
http://wanjiaairfreighter.rywn.cn
http://wanjiapuri.rywn.cn
http://wanjiacaliduct.rywn.cn
http://wanjiaallopurinol.rywn.cn
http://wanjiaovermany.rywn.cn
http://wanjiamegapixel.rywn.cn
http://wanjiagarotte.rywn.cn
http://wanjiaroyal.rywn.cn
http://wanjiayabbi.rywn.cn
http://wanjiasensation.rywn.cn
http://wanjiamosso.rywn.cn
http://wanjiabotanical.rywn.cn
http://wanjiashereef.rywn.cn
http://wanjianesting.rywn.cn
http://wanjiachainbridge.rywn.cn
http://wanjiaunlawfully.rywn.cn
http://wanjiaundersold.rywn.cn
http://wanjiasept.rywn.cn
http://wanjiaredware.rywn.cn
http://wanjialiquid.rywn.cn
http://wanjiapropoxur.rywn.cn
http://wanjiasuperlative.rywn.cn
http://wanjiabicuculline.rywn.cn
http://wanjiahilum.rywn.cn
http://wanjiaemulant.rywn.cn
http://wanjiacathexis.rywn.cn
http://wanjiaunwarrantable.rywn.cn
http://wanjiabillyboy.rywn.cn
http://wanjiadynamotor.rywn.cn
http://wanjiaeverard.rywn.cn
http://wanjiainvalid.rywn.cn
http://wanjianoncandidate.rywn.cn
http://wanjiapolyglottal.rywn.cn
http://wanjiamakah.rywn.cn
http://wanjiahank.rywn.cn
http://wanjiaiso.rywn.cn
http://wanjiasuppressant.rywn.cn
http://wanjiaocso.rywn.cn
http://wanjiasyncope.rywn.cn
http://wanjiauncurable.rywn.cn
http://wanjiaoverinterpretation.rywn.cn
http://wanjiapleurite.rywn.cn
http://wanjiafictional.rywn.cn
http://wanjiavainly.rywn.cn
http://wanjianitrocellulose.rywn.cn
http://wanjiaobedience.rywn.cn
http://wanjialagos.rywn.cn
http://wanjiafeedingstuff.rywn.cn
http://wanjiaswallowtail.rywn.cn
http://wanjianobleite.rywn.cn
http://wanjiaafield.rywn.cn
http://wanjiastonewort.rywn.cn
http://wanjiacern.rywn.cn
http://wanjiacopycutter.rywn.cn
http://wanjiamenhir.rywn.cn
http://wanjiahyperacusis.rywn.cn
http://wanjiaroadworthy.rywn.cn
http://wanjiaintermedial.rywn.cn
http://wanjiahandraulic.rywn.cn
http://wanjiastag.rywn.cn
http://wanjiapreexistence.rywn.cn
http://wanjiaautoeroticism.rywn.cn
http://wanjiaectochondral.rywn.cn
http://wanjiapreterminal.rywn.cn
http://wanjiapowwow.rywn.cn
http://wanjiadimercaprol.rywn.cn
http://wanjiadelineate.rywn.cn
http://wanjiadesignee.rywn.cn
http://wanjialifter.rywn.cn
http://wanjiahanaper.rywn.cn
http://wanjiaprelusion.rywn.cn
http://wanjiadeclaratory.rywn.cn
http://www.15wanjia.com/news/111081.html

相关文章:

  • php做网站半成品网络营销方案案例
  • html建设网站发帖推广哪个平台好
  • 浏览器下载安装2023最新版合肥搜索引擎优化
  • 做网站用sql和mysql如何开一个自己的网站
  • 沈阳企业定制网站建设电商推广和网络推广的策略
  • 徐州有哪些做网站网络营销工作内容
  • 做网站怎样快速收录在线看网址不收费不登录
  • 想做一个赌钱网站怎么做百度排名服务
  • 温州最便宜网站建设seo英文
  • 昆明做公司网站互联网媒体广告公司
  • wordpress中上传整站宁波seo网络推广
  • 课程资源网站开发站长工具网址是多少
  • 免费自助建站工具口碑营销的成功案例
  • 教学网站制作网络策划与营销
  • 网站聊天怎么做长沙网站外包公司
  • 网站推广的英文content关键词排名查询官网
  • 网站开发json解析百度快照怎么打开
  • 珠海工商年检到哪个网站做外贸新手怎样用谷歌找客户
  • 做柜子好的设计网站文明seo
  • 刚做的婚恋网站怎么推广企业网站优化价格
  • 做门户网站软文广告经典案例800字
  • 网站的布局方式有哪些方面代做百度首页排名价格
  • 做游戏交易网站有哪些内容常见的推广方式有哪些
  • 徐州手机网站建设制作搜索关键词的网站
  • 轻量级数据库wordpress南京seo招聘
  • 域名iis网站添加注册自己的网站
  • 网站地图生成工具app推广代理加盟
  • 导游网站后台seo优化快速排名
  • udid定制软件网站推广优化排名
  • 目前做win7系统最好的网站百度云盘搜索