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

【蓝桥杯冲冲冲】Invasion of the Milkweed G

【蓝桥杯冲冲冲】Invasion of the Milkweed G

蓝桥杯备赛 | 洛谷做题打卡day30

文章目录

  • 蓝桥杯备赛 | 洛谷做题打卡day30
  • [USACO09OCT] Invasion of the Milkweed G
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 题解代码
    • 我的一些话

在这里插入图片描述

输入格式

* 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后成功编译并运行出正确结果真的会感到很幸福!

  • 关于之前蓝桥杯备赛的路线和基本方法、要掌握的知识,之前的博文我都有写,欢迎大家关注我,翻阅自取哦~

  • 不管什么都要坚持吧,三天打鱼两天晒网无法形成肌肉记忆和做题思维,该思考的时候一定不要懈怠,今天就说这么多啦,欢迎评论留言,一起成长:)


http://www.kler.cn/a/232878.html

相关文章:

  • 浪潮信息“源”Embedding模型登顶MTEB榜单第一名
  • 第四十五章 Vue之Vuex模块化创建(module)
  • 简易入手《SOM神经网络》的本质与原理
  • C++ 的协程
  • SHELL脚本(Linux)
  • OCR识别铁路电子客票
  • Excel——有效性、二级菜单联动
  • 【开源】JAVA+Vue+SpringBoot实现班级考勤管理系统
  • pytorch——保存‘类别名与类别数量’到权值文件中
  • python创建udf函数步骤
  • macbook电脑如何永久删除app软件?
  • java基础(2) 面向对象编程-java核心类
  • pytest+allure批量执行测试用例
  • Linux操作系统基础(三):虚拟机与Linux系统安装
  • MATLAB环境下用于提取冲击信号的几种解卷积方法
  • 致我的2023年——个人学年总结
  • 32I2C通信协议
  • android 音频调试技巧
  • 25、数据结构/二叉树相关练习20240207
  • vue项目开发vscode配置
  • 《学成在线》微服务实战项目实操笔记系列(P1~P83)【上】
  • FastAPI使用ORJSONResponse作为默认的响应类型
  • MyBatis之动态代理实现增删改查以及MyBatis-config.xml中读取DB信息文件和SQL中JavaBean别名配置
  • 极值图论基础
  • VScode为什么选择了Electron,而不是QT?
  • Leecode之环形链表