【蓝桥杯冲冲冲】Invasion of the Milkweed G
【蓝桥杯冲冲冲】Invasion of the Milkweed G
蓝桥杯备赛 | 洛谷做题打卡day30
文章目录
- 蓝桥杯备赛 | 洛谷做题打卡day30
- [USACO09OCT] Invasion of the Milkweed G
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 题解代码
- 我的一些话
-
[USACO09OCT] Invasion of the Milkweed G
题目描述
Farmer John has always done his best to keep the pastures full of luscious, delicious healthy grass for the cows. He has lost the battle, though, as the evil milkweed has attained a foothold in the northwest part of his farm.
The pasture, as usual, is partitioned into a rectilinear grid of height Y (1 <= Y <= 100) and width X (1 <= X <= 100) with (1,1) being in the lower left corner (i.e., arranged as a normal X,Y coordinate grid). The milkweed has initially begun growing at square (Mx,My). Each week the milkweed propagates to all non-rocky squares that surround any square it already occupies, as many as eight more squares (both the rectilinear squares and the diagonals). After only one week in those squares, it is ready to move on to more squares.
Bessie wants to enjoy all the grass she can before the pastures are taken over by milkweed. She wonders how long it can last. If the milkweed is in square (Mx,My) at time zero, at what time does it complete its invasion of the pasture (which, for the given input data, will always happen)?
The pasture is described by a picture with '.'s for grass and '*'s for boulders, like this example with X=4 and Y=3:
.... ..*. .**.If the milkweed started in the lower left corner (row=1, column=1), then the map would progress like this:
.... .... MMM. MMMM MMMM..*. MM*. MM*. MM*M MM*MM**. M**. M**. M**. M**M week 0 1 2 3 4The milkweed has taken over the entire field after 4 weeks.
POINTS: 125
Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草。可惜天不从人愿,他在植物大战人类中败下阵来。邪恶的乳草已经在他的农场的西北部份占领了一片立足之地。
草地像往常一样,被分割成一个高度为Y(1 <= Y <= 100), 宽度为X(1 <= X <= 100)的直角网格。(1,1)是左下角的格(也就是说坐标排布跟一般的X,Y坐标相同)。乳草一开始占领了格(Mx,My)。每个星期,乳草传播到已被乳草占领的格子四面八方的每一个没有很多石头的格(包括垂直与水平相邻的和对角在线相邻的格)。1周之后,这些新占领的格又可以把乳草传播到更多的格里面了。
Bessie想要在草地被乳草完全占领之前尽可能的享用所有的牧草。她很好奇到底乳草要多久才能占领整个草地。如果乳草在0时刻处于格(Mx,My),那么会在哪个时刻它们可以完全占领入侵整片草地呢?对给定的数据总是会发生。

输入格式
* Line 1: Four space-separated integers: X, Y, Mx, and My
* Lines 2…Y+1: Line y+1 describes row (Y+2-y) of the field with X characters (‘.’ for grass and ‘*’ for a boulder)
输出格式
* Line 1: A single integer that is the week number when the milkweed takes over the last remaining non-boulder square of the pasture.
样例 #1
样例输入 #1
4 3 1 1
....
..*.
.**.
样例输出 #1
4
题解代码
学会利用新知,自己多试试并尝试积攒一些固定解答方案,debug,以下是题解代码 ~
#include<bits/stdc++.h>
using namespace std;
int f[105][105],tot=1,n,m,sx,sy,Time=1,sum;
char Map[105][105];
int l[8][2]={{1,0},{0,1},{-1,0},{0,-1},{-1,-1},{1,-1},{-1,1},{1,1}};
int main()
{memset(f,-1,sizeof(f));cin>>m>>n>>sy>>sx;for(int i=n;i>0;i--)for(int j=1;j<=m;j++){cin>>Map[i][j];if(Map[i][j]=='.') sum++;}f[sx][sy]=0; while(tot!=sum){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){bool flag=0;if(f[i][j]>0) continue;if(Map[i][j]=='*') continue;for(int q=0;q<8;q++){int tx=i+l[q][0];int ty=j+l[q][1];if(tx<1||tx>n||ty<1||ty>m) continue;if(Map[tx][ty]=='*') continue;if(f[tx][ty]!=Time-1) continue;f[i][j]=Time; flag=1;}if(flag) tot++;}Time++;}cout<<Time<<endl;return 0;
}
我的一些话
-
今天学习动态规划,dp属于比较难的部分,这题利用记忆化搜索即可快速解决,需要多动脑,多思考思路还是很好掌握的,虽然一次性AC有一定难度,需要通盘的考虑和理解,以及扎实的数据结构基础才能独立写出AC代码。但无论难易,大家都要持续做题,保持题感喔!一起坚持(o´ω`o)
-
如果有非计算机专业的uu自学的话,关于数据结构的网课推荐看b站上青岛大学王卓老师的课,讲的很细致,有不懂都可以私信我喔
-
总结来说思路很重要,多想想,多在草稿纸上画画,用测试数据多调试,debug后成功编译并运行出正确结果真的会感到很幸福!
-
关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~
-
不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)
相关文章:
【蓝桥杯冲冲冲】Invasion of the Milkweed G
【蓝桥杯冲冲冲】Invasion of the Milkweed G 蓝桥杯备赛 | 洛谷做题打卡day30 文章目录 蓝桥杯备赛 | 洛谷做题打卡day30[USACO09OCT] Invasion of the Milkweed G题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题解代码我的一些话 [USACO09OCT] Invasion of the Mi…...
【JAVA WEB】 百度热榜实现 新闻页面 Chrome 调试工具
目录 百度热榜 新闻页面 Chrome 调试工具 --查看css属性 打开调试工具的方式 标签页含义 百度热榜 实现效果: 实现代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"vi…...
Linux——动静态库
基础知识:动vs静 类型动静加载时机运行时编译时可复用性多个文件只需要加载一份库文件每个文件都需要加载一份文件性能链接次数越多越有优势链接次数越少越有优势 代码编写 静态库 生成静态库 libmath.a:add.o sub.oar -rc $ $^%.o:%.cgcc -c $<使用静态库 头文件和工…...
Vulnhub靶机:hacksudo-search
一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:hacksudo-search(10.0.2.50) 目标:获取靶机root权限和flag 靶机下载地址:https://download.vulnhub.co…...
Leetcode 188 买卖股票的最佳时机 IV
题意理解: 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说,你最多可以买 k 次,卖 k 次。 注意…...
win32编程系统BUG(Win32 API中的WM_SETTEXT消息)
由于频繁使用Win32 API中的WM_SETTEXT消息,导致内存占用直线上升。 暂未找到有效解决方案。...
Linux防火墙开放
记录一次问题 写的网络服务无法通信 代码没问题,IP绑定、端口绑定没问题,就是无法进行通信,这里要分2步走。 服务器控制台开放 进入防火墙 添加规则,这里以开放udp的8899端口为例 这里在服务器后台就已经开放了,但此时…...
通过 docker-compose 部署 Flink
概要 通过 docker-compose 以 Session Mode 部署 flink 前置依赖 Docker、docker-composeflink 客户端docker-compose.yml version: "2.2" services:jobmanager:image: flink:1.17.2ports:- "8081:8081"command: jobmanagervolumes:- ${PWD}/checkpoin…...
HarmonyOS ArkTS修改App的默认加载的界面(二十)
前言:在Android开发中想要修改默认启动页,只需要在AndroidManifest.xml中设置即可 只需要在启动的activity种添加如下属性即可 <intent-filter><action android:name"android.intent.action.MAIN" /><category android:name&qu…...
【前端高频面试题--Vue基础篇】
🚀 作者 :“码上有前” 🚀 文章简介 :前端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬前端高频面试题--Vue基础篇 Vue基本原理双向绑定与MVVM模型Vue的优点计算属性与监听属性计算属性监…...
Spring Boot 实现热插拔 AOP
现在有这么一个需求:就是我们日志的开与关是交给使用人员来控制的,而不是由我们开发人员固定写死的。大家都知道可以用aop来实现日志管理,但是如何动态的来实现日志管理呢?aop源码中的实现逻辑中有这么一个步骤,就是会依次扫描Advice的实现类,然后执行。我们要做的就是自…...
2月05日,每日信息差
第一、全球首套5G及6G天地一体网络低轨试验卫星发射入轨、。据了解,“中国移动01星”是全球首颗可验证5G天地一体演进技术的试验卫星,它搭载的基站可以利用卫星的广覆盖优势把5G信号传送到地面网络无法覆盖到的地方;另外一颗“‘星核’验证星…...
使用Python进行数据的描述性分析,用少量的描述性指标来概括大量的原始数据
在进行数据分析时,当研究者得到的数据量很小时,可以通过直接观察原始数据来获得所有的信息。但是,当得到的数据量很大时,就必须借助各种描述性指标来完成对数据的描述工作。用少量的描述性指标来概括大量的原始数据,对…...
【JS逆向三】逆向某某网站的sign参数,并模拟生成仅供学习
逆向日期:2024.02.06 使用工具:Node.js 类型:webpack 文章全程已做去敏处理!!! 【需要做的可联系我】 可使用AES进行解密处理(直接解密即可):AES加解密工具 1、打开某某…...
移动光猫gs3101超级密码及改桥接模式教程
文章目录 超级管理员账号改桥接模式路由器连接光猫,PPPOE拨号即可!附录:如果需要改桥接的话不知道拨号密码咋办打开光猫Telnet功能Telnet 登录 参考文章 移动光猫吉比特GS3101超级账号获取更改桥接 移动光猫gs3101超级密码及改桥接模式教程 …...
leetcode 153
153 寻找旋转排序数组中的最小值 这道题,如果我们熟悉数组 api,可以直接用 Arrays.sort()秒杀,这个方法使用了双轴快速排序算法。 解法1如下: class Solution {public int findMin(int[] nums) {Arrays.sort(nums);return nums…...
【MySQL】数据库的基础——数据库的介绍、MySQL的介绍和架构、SQL分类、MySQL的基本使用、MySQL的存储引擎
文章目录 MySQL1. 数据库的介绍1.2 主流数据库 2. MySQL的介绍2.1 MySQL架构2.2 SQL分类2.3 MySQL的基本使用2.4 MySQL存储引擎 MySQL 1. 数据库的介绍 数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。它是长期存储在计…...
后端的技术设计文档
一、 背景 1.简介 2.业务规划(非必需) 3.工作项拆解 拆解成多个工作项,每个工作项,需要多少人力。 4.资源评估(非必需) 有没有新的服务 二、架构设计 1.架构图(非必需,新服务比较需要) 2.技术选型 SpringCloud、Redis、Mysql、Myba…...
Windows10安装PCL1.14.0及点云配准
一、下载visual studio2022 下载网址:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 安装的时候选择"使用C的桌面开发“,同时可以修改文件路径,可以放在D盘。修改文件路径的时候,共享组件、…...
C语言第二十二弹---指针(六)
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 指针 1. 回调函数是什么? 2、qsort使用举例 2.1、使用qsort函数排序整型数据 2.2 使用qsort排序结构体数据 3、qsort函数的模拟实现 总结 1. 回…...
基于SSM + Vue的二手物品交易网站系统(角色:用户、管理员)
文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…...
ollama-QwQ-32B提示工程:提升OpenClaw操作准确率的10个模板
ollama-QwQ-32B提示工程:提升OpenClaw操作准确率的10个模板 1. 为什么需要专门优化OpenClaw的提示词? 第一次用OpenClaw执行文件整理任务时,我遭遇了灾难性结果——AI误将整个Downloads文件夹按修改日期排序后,把300多个文件全部…...
避开RK3568 MPP开发的那些坑:V4L2缓冲区管理与实时码流稳定性优化实战
RK3568 MPP开发实战:V4L2缓冲区管理与码流稳定性优化指南 在嵌入式视频处理领域,RK3568凭借其强大的多媒体处理能力成为中高端项目的首选方案。但当我们真正将其应用于工业视觉、安防监控等对稳定性要求严苛的场景时,开发者常常会遇到令人头疼…...
三、从零解析Franka ROS2控制器:以关节位置控制为例
1. Franka机械臂与ROS2控制器基础 如果你刚接触机器人控制,Franka机械臂搭配ROS2绝对是个不错的起点。Franka Emika机械臂以其高精度和易用性著称,而ROS2作为机器人操作系统的最新版本,提供了更强大的实时性和分布式能力。我第一次用Franka做…...
手把手教你用GD32F30x的定时器搞定BLDC电机霍尔信号捕获(附完整代码)
手把手教你用GD32F30x的定时器实现BLDC电机霍尔信号精准捕获 当你的GD32F30x开发板已经连接好BLDC电机的霍尔传感器,却发现转速计算总是不准确时,问题往往出在定时器的配置细节上。本文将带你从寄存器层面拆解霍尔信号捕获的全流程,解决实际开…...
Labelme标注效率翻倍!手把手教你修改源码,让标签信息直接显示在图上(支持Ctrl+T切换)
Labelme标注效率翻倍实战:源码修改实现标签可视化与快捷键切换 在计算机视觉项目的标注环节中,Labelme作为开源标注工具被广泛使用。但实际标注过程中,我们常常遇到一个令人抓狂的问题:当需要检查某个标注框的具体信息时ÿ…...
WSL 下 Debian 系统 apt 源切换国内镜像的完整指南
1. 为什么需要切换WSL Debian的apt源? 如果你在Windows Subsystem for Linux(WSL)中安装了Debian系统,可能会遇到软件包下载速度慢的问题。这主要是因为默认的软件源服务器位于国外,网络延迟较高。我刚开始用WSL时&…...
终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查
终极指南:如何使用Docker Stacks与Git Hooks实现自动化代码质量检查 【免费下载链接】docker-stacks Ready-to-run Docker images containing Jupyter applications 项目地址: https://gitcode.com/gh_mirrors/do/docker-stacks Docker Stacks是一个提供现成…...
从演唱会踩踏到交通拥堵:我们如何用无人机双光人群计数,为城市装上‘智慧之眼’?
无人机双光人群计数:城市安全管理的智能升级之路 当夜幕降临,体育场外数万观众正陆续离场,安保指挥中心的大屏上闪烁着红黄相间的热力图——这不是科幻电影的场景,而是某省会城市在明星演唱会后的真实一幕。通过部署在关键节点的1…...
时间管理大师:OpenClaw+nanobot自动规划每日日程
时间管理大师:OpenClawnanobot自动规划每日日程 1. 为什么需要AI日程规划助手 作为一个长期被多线程任务困扰的技术从业者,我一直在寻找能够真正理解我工作习惯的智能日程管理方案。市面上的日历应用大多只能机械地记录事件,而无法根据任务…...
