1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

解题思路

  • 将原始网格中所有水田 'o' 按四方向(上、下、左、右)进行连通块划分,给每个水田格子分配一个组件编号,并记录每个组件的面积(格子数)。可用 BFS/DFS 完成,推荐 BFS 防止递归过深。

  • 对于每一个格子:

    • 若原本是水田 'o',答案为 0(题意要求)。
    • 若原本是旱田 'x',把它视作改造成水田后,它会与其四邻中至多四个水田组件相连。取这些相邻组件编号的去重集合,把对应面积求和,再加上当前格子本身的 1,即为“将该位置改造成水田后,包含该位置的最大连通水田块大小”。
  • 这样即可一次预处理、一次扫描得到所有答案。

P4403.第1题-旱田改造

    1000ms Tried: 47 Accepted: 12 Difficulty: 4 所属公司 : 京东
    算法与标签>BFS

题目内容

某地区有一片 n×mn×mn×m 的农田网格,每个格子要么是“旱田”(用 'xxx'表示,无法通水),要么是“水田”(用 'ooo'表示,可以通水)。水利部门计划对部分旱田进行改造,他们只能选择其中一块早田,将其改造成水田。

水利部门定义“连通水田块”指的是四连通区域(即区域内的任意两块水田可通过上下左右移动仅经过区域内的水田互相到达),“最大连通水田块”是指该区域在所有可能的连通水田块中面积最大(格子数量最多)。

水利部门希望先计算出不同选择后能形成的最大连通水田块的情况后再实施改造。请针对网格中的每个格子输出结果:若该格子原本是水田,输出 000 ;若原本是旱田,输出将该位置改造成水田后,包含该位置的最大连通水田块的大小。

输入描述

第一行包含两个正整数 nnn 和 mmm ,表示农田网格的行数和列数。

接下来 nnn 行,每行包含一个长度为 mmm 的字符串,字符串由 'xxx'(旱田)和 'ooo'(水田)组成,描述农田网格的初始状态 1≤n,m≤5001≤n,m≤5001≤n,m≤500

输出描述

输出 nnn 行,每行 mmm 个整数,中间用空格隔开。对于原本是水田的格子输出 000 ;对于原本是早田的格子,输出水利部门改造后包含该位置的最大连通水田块的大小。

样例1

输入

3 3
xoo
oxo
xox

输出

5 0 0
0 6 0
3 0 5

样例2

输入

6 5
ooooo
oxxoo
xxxox
oxxoo
xooxx
ooooo

输出

0 0 0 0 0
0 12 12 0 0
13 1 12 0 12
0 9 19 0 0
9 0 0 19 19
0 0 0 0 0

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 48ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?