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

企业网站模板源代码品牌营销策划包括哪些内容

企业网站模板源代码,品牌营销策划包括哪些内容,个人网站做微擎,新疆网站建设一条龙服务题目描述:周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发输入描述:第一行…

题目描述:

周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发

输入描述:

第一行输入m n k(空格分隔)

·代表m*n的二维山地图,k为小明每次爬山或下山高度差的最大值,然后接下来输入山地图,一共m行n列,均以空格分隔。取值范围:

·0<m≤500

·O<n≤500

·0<k<5

输出描述

请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。同高度的山峰输出较短步数。

如果没有可以爬的山峰,则高度和步数都返回0。

备注

所有用例输入均为正确格式,且在取值范围内,考生不需要考虑不合法的输入格式。

输入
5 4 1
0 1 2 0
1 0 0 0
1 0 1 2
1 3 1 0
0 0 0 9
输出
22
说明
根据山地图可知,能爬到的最高峰在(0,2)位置,高度为2,最短路径为(0,0)-(0,1)-(0.2),最短步数为2。

用例2

5 4 3
0 0 0 0
0 0 0 0
0 9 0 0
0 0 0 0
0 0 0 9
0 0
根据山地图可知,每次爬山距离3,无法爬到山峰上,步数为0。
package bfs;import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;public class MountainClimbing {public static int k;//key = 山峰高度 value = 步数public static Map<Integer, Integer> map = new HashMap<>();public static void main(String[] args) {Scanner sc = new Scanner(System.in);//读取第一行输入 m  n  kString[] line1 = sc.nextLine().split(" ");int m = Integer.parseInt(line1[0]);int n = Integer.parseInt(line1[1]);k = Integer.parseInt(line1[2]);//读取二维数组int[][] matrix = new int[m][n];for (int i = 0; i <= m - 1; i++) {String[] line = sc.nextLine().split(" ");for (int j = 0; j <= n - 1; j++) {matrix[i][j] = Integer.parseInt(line[j]);}}bfs(matrix, 0, 0);
//        dfs(matrix, 0, 0, 0);int maxValue = 0;int step = 0;for(int value : map.keySet()) {if (value > maxValue) {maxValue = value;step = map.get(value);}}System.out.println(maxValue + " " + step);}public static void bfs(int[][] matrix, int row, int col) {Queue<int[]> queue = new LinkedList<>();// 行、列、层级(步数)queue.offer(new int[]{row, col, 0});// 记录四个方向的偏移量int[][] offsets = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};while (!queue.isEmpty()) {int[] current = queue.poll();int x = current[0];int y = current[1];//表示当前节点已被访问过if (matrix[x][y] < 0) {continue;}// 如果map中不包含此高峰高度,或者当前节点步数少。if(!map.containsKey(matrix[x][y]) || map.get(matrix[x][y]) > current[2]) {map.put(matrix[x][y], current[2]);}int val = matrix[x][y];matrix[x][y] = -1;//四个方向遍历for(int[] offset : offsets) {int newX = x + offset[0];int newY = y + offset[1];// 节点越界// 节点访问过// 山峰高度相差大于K 无法到达此节点if (newX < 0 || newX >= matrix.length || newY < 0 || newY >= matrix[0].length ||matrix[newX][newY] < 0 || Math.abs(matrix[newX][newY]) - val > k) {continue;}queue.offer(new int[]{newX, newY, current[2] + 1});}}}public static void dfs(int[][] matrix, int row, int col, int step) {int[][] offsets = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};int val = matrix[row][col];//如果当前山峰高度再map中没有,直接put高度以及步数//如果当前山峰走的步数小于之前走的步数,替换之前的步数if (!map.containsKey(val) || step < map.get(val)) {map.put(val, step);}//标记当前节点已经走过,不走回头路matrix[row][col] = -1;// 四个方向遍历for(int[] offset : offsets) {int newRow = row + offset[0];int newCol = col + offset[1];if (newRow < 0 || newRow >= matrix.length || newCol < 0 || newCol >= matrix[0].length || matrix[newRow][newCol] < 0) {continue;}if (Math.abs(val - matrix[newRow][newCol]) <= k) {dfs(matrix, newRow, newCol, step + 1);}}//恢复当前节点的值,matrix[row][col] = val;}}

 

http://www.dtcms.com/wzjs/167183.html

相关文章:

  • 做网站需要几个程序网络营销策略有哪些
  • 百度云 wordpress网站优化排名资源
  • 给别人做的网站涉及到诈骗百度推广价格表
  • 百度在线做网站郑州seo关键词自然排名工具
  • 网站集约化互联网营销师培训多少钱
  • 2020房屋装修效果图百度快照优化培训班
  • 最专业企业营销型网站建设搜索引擎优化的基础是什么
  • 企业网站制作模板免费下载网络营销公司注册找哪家
  • 独立网站建设步骤亚洲精华国产精华液的护肤功效
  • 运城网站开发代运营竞价公司
  • 一键生成淘宝主图的软件seo搜索优化公司排名
  • 西安市在建工程项目抖音seo查询工具
  • 淮南做网站的最近国际时事热点事件
  • 做外汇的官方网站教你如何建立网站
  • 中国建设银行个人网站注册个人怎么做网站
  • 网站公司缺点茶叶营销策划方案
  • 商河网站建设网络推广方式
  • 政府建设网站特点优化关键词的方法有哪些
  • nba网站建设百度seo关键词优化电话
  • 直播做ppt的网站有哪些广东东莞今日最新消息
  • 北京互联网公司网站建设cms系统
  • 网站建设 上海网站建拼多多代运营一般多少钱
  • 建设工程教育网视频网站怎样注册个人网站
  • 扬州seo招聘新十条优化措施
  • 养老院网站建设的费用小广告
  • 网站论坛怎么做 csdn上海百度推广官网
  • 佛山从事网站建设百度关键词优化排名
  • 怎样说服老板做网站seo优化与推广招聘
  • 武汉网站建设设计哪家好深圳网站制作推广
  • 程序员怎么做自己的网站企业网站有哪些功能