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

wordpress百度收录之自动推送设置深圳白帽优化

wordpress百度收录之自动推送设置,深圳白帽优化,如何利用淘宝建设网站挣钱,新网站建设方案ppt题目描述 农夫约翰一直尽力保持牧场里长满丰盛、美味且健康的草供奶牛食用。然而,他输掉了这场战斗,因为邪恶的乳草在他的农场西北部站稳了脚跟。 牧场通常被划分为一个直角网格,高度为 Y(1≤Y≤100),宽度…

题目描述

农夫约翰一直尽力保持牧场里长满丰盛、美味且健康的草供奶牛食用。然而,他输掉了这场战斗,因为邪恶的乳草在他的农场西北部站稳了脚跟。

牧场通常被划分为一个直角网格,高度为 Y(1≤Y≤100),宽度为 X(1≤X≤100),其中 (1,1) 位于左下角(即,排列为正常的 X,Y 坐标网格)。乳草最初开始在方格 (Mx​,My​) 生长。每周,乳草会传播到它已经占据的任何方格周围的所有非岩石方格,最多可以传播到八个方格(包括直角方格和对角线方格)。在这些方格中仅仅一周后,它就准备好继续传播到更多方格。

贝茜想在牧场被乳草占领之前尽可能多地享受青草。她想知道牧场能持续多久。如果乳草在时间零时位于方格 (Mx​,My​),那么它在何时完成对牧场的入侵(对于给定的输入数据,这种情况总会发生)?

牧场由一个图示描述,'.' 代表草,'*' 代表巨石,如下例所示,X=4,Y=3:

....
..*.
.**.

如果乳草从左下角开始(行=1,列=1),那么地图将按如下方式演变:

    ....  ....  MMM.  MMMM  MMMM..*.  MM*.  MM*.  MM*M  MM*MM**.  M**.  M**.  M**.  M**M
week  0    1    2    3    4

乳草在 4 周后占领了整个牧场。

输入格式

* 第 1 行:四个以空格分隔的整数:X,Y,Mx​ 和 My​

* 第 2 行到第 Y+1 行:第 y+1 行描述了牧场的第 (Y+2−y) 行,其中包含 X 个字符('.' 代表草,'*' 代表巨石)

输出格式

* 第 1 行:一个整数,表示乳草占领牧场最后一个非巨石方格的周数。

显示翻译

题意翻译

输入输出样例

输入 #1复制

4 3 1 1 
.... 
..*. 
.**. 

输出 #1复制

4 

说明/提示

(由 ChatGPT 4o 翻译)

代码实现:

#include <iostream>
#include <vector>
#include <queue>
#include <string>
using namespace std;

// 定义8个方向的偏移量(上、下、左、右及四个对角线方向)
const int dx[8] = {-1, -1, -1, 0, 0, 1, 1, 1};
const int dy[8] = {-1, 0, 1, -1, 1, -1, 0, 1};

int main() {
    int X, Y, Mx, My;
    cin >> X >> Y >> Mx >> My;
    
    // 调整坐标,使其从0开始索引(更符合编程习惯)
    Mx--; 
    My = Y - My; // 因为题目中(1,1)在左下角,转换为从0开始的索引时需要调整
    
    // 读取牧场地图
    vector<string> pasture(Y);
    for (int i = 0; i < Y; i++) {
        cin >> pasture[i];
    }
    
    // 记录每个位置被占领的时间,-1表示未被占领或为巨石
    vector<vector<int> > time(Y, vector<int>(X, -1));
    queue<pair<int, int> > q;
    
    // 检查起始位置是否为草
    if (pasture[My][Mx] == '.') {
        time[My][Mx] = 0; // 时间从0开始
        q.push(make_pair(My, Mx));
    }
    
    int result = 0;
    
    // BFS过程
    while (!q.empty()) {
        pair<int, int> current = q.front();
        q.pop();
        int y = current.first;
        int x = current.second;
        
        // 尝试向8个方向扩散
        for (int i = 0; i < 8; i++) {
            int nx = x + dx[i];
            int ny = y + dy[i];
            
            // 检查新位置是否在边界内,是否为草,是否未被占领
            if (nx >= 0 && nx < X && ny >= 0 && ny < Y && 
                pasture[ny][nx] == '.' && time[ny][nx] == -1) {
                time[ny][nx] = time[y][x] + 1; // 时间+1
                q.push(make_pair(ny, nx));
                result = max(result, time[ny][nx]); // 更新最大时间
            }
        }
    }
    
    cout << result << endl;
    return 0;
}

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

相关文章:

  • 创建一个购物网站需要什么网络营销推广方案策划书
  • 网站的绝对路径怎么做上海服务政策调整
  • 网站建设注意要点网络推广大概需要多少钱
  • 建网站 铸品牌 做推广专注于seo顾问
  • 安徽省住房和城乡建设厅网站6厦门seo网站排名优化
  • 亚马逊怎么做网站推广网络营销的含义的理解
  • 海淀网站建设哪家公司好seo推广排名重要吗
  • 如何用ps做网站图标百度收录查询工具
  • 自己的网站如何做推广黄页88网推广服务
  • 南京新标特企业网站哪家广告做的个人网页怎么做
  • 个人网页制作怎么做网站seo在线优化
  • 金乡县网站开发seo网络推广是什么意思
  • 横沥网站建设杯子软文营销300字
  • wordpress短代码参数值带seo排名优化是什么
  • 手机网站开发周期百度网站权重查询
  • wordpress做大站好吗精准网络营销推广
  • 浦元品牌网站建设发布友情链接
  • 网站开发 经济可行性百度一下就知道手机版
  • 上海网站备案注销十大最靠谱教育培训机构
  • 服装小订单接单平台关键词推广优化外包
  • 东台网站建设公司结构优化
  • 宾爵手表官方网站百度首页排名优化多少钱
  • 拥有响应式网站网站查询备案信息
  • 学网站开发多久关键词的选取原则有
  • 新闻类网站html模板免费下载nba最新交易动态
  • 一个网站如何做双语今日新闻 最新消息 大事
  • 专业的网站建设联系方式网络营销咨询公司
  • 非专业人士可以做网站编辑的工作吗合肥网络公司
  • pre_get_posts wordpressseo优化排名怎么做
  • 那个网站可教做课件好搜索引擎搜索器