信息学奥赛一本通1216:红与黑

信息学奥赛一本通C++语言——1216:红与黑 【题目描述】 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 【输入】 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下: 1)‘.’:黑色的瓷砖;... 阅读详情

2月9日定时发布的,别以为我光速跑回家更新

1216:红与黑


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 41815     通过数: 17281

【题目描述】

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。

【输入】

包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下:

1)‘.’:黑色的瓷砖;

2)‘#’:红色的瓷砖;

3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中唯一出现一次。

当在一行中读入的是两个零时,表示输入结束。

【输出】

对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。

【输入样例】

6 9 
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
0 0

【输出样例】

45

 


#include<bits/stdc++.h>
using namespace std;
int h,w,ax,ay,cnt;
char a[21][21];
int dy[4]={1,-1,0,0};
int dx[4]={0,0,-1,1};
void dfs(int x,int y)
{
	for(int i=0;i<4;i++)
	{
		int xx=x+dx[i];
		int yy=y+dy[i];
		if(xx>=1&&xx<=w&&yy>=1&&yy<=h&&a[xx][yy]=='.')
		{
			cnt++;
			a[xx][yy]='#';
			dfs(xx,yy);
		}
	}
}
int main()
{
	cin>>h>>w;
	while(h!=0&&w!=0)
	{
		for(int i=1;i<=w;i++)
		{
			for(int j=1;j<=h;j++)
			{
				cin>>a[i][j];
				if(a[i][j]=='@')
				{
					ax=i;
					ay=j;
					cnt++;
					a[i][j]='#';
				}
			}
		}
		dfs(ax,ay);
		cout<<cnt<<endl;
//		for(int i=1;i<=w;i++)
//		{
//			for(int j=1;j<=h;j++)
//			{
//				cout<<a[i][j];
//			}
//			cout<<endl;
//		}
		cnt=0;
		cin>>h>>w;
	}
}

​

经典问题的另类解法——以信息学奥赛一本通c++版1216红与黑为例 1216的红与黑给出我们一个平面,也可认为是一个迷宫,要求找到所有能从起点到达的格子,于是有了如黏菌探路一般的扩散法。 阅读详情

相关推荐

信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

信息学奥赛一本通(基础算法与数据结构-题解汇总)

lybc2019的博客 1万+

红与黑

题目描述 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。 你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入格式 包括多组数据。每组数据的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量,W和H都不超过20。 在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下: .:黑色的瓷砖; #:白色的瓷砖; @:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据中唯一出现一次。 当在一

六级不考550+不改名 1250

AltiumDesigner 09安装过程破解问题 .

首先分享一下破解文件,网上总是下载不到,好不容易下载到了,放在网盘上,有需要的自取。AltiumDesigner 09破解文件。链接:https://pan.baidu.com/s/1ZGvbR_6T51hpcaFbQiMX5w 密码:qwvaAltiumDesigner 09安装安装文件,比较大,包含破解文件:链接:https://pan.baidu.com/s/1mfgragB519jpGfR...

xiaoxiao_rabbit的博客 3万+

信息学奥赛一本通 1216:红与黑 | OpenJudge NOI 2.5 1818:红与黑

【题目链接】 ybt 1216:红与黑 OpenJudge NOI 2.5 1818:红与黑 【题目考点】 1. 连通块问题 2. 深搜/广搜 【解题思路】 1. 深搜 从第一个格子出发,遍历所有可以前进的方向,前进到下一个格后,再遍历可以前进的方向,走过的格子做标记,标记过的格子就不走了,不是黑色的格子不走。如果没有可以走的格子,那么退回到上一位置,看还有没有可以前进的方向。 每走一个格子,格子计数加1,如果退回,也不减少格子计数。深搜结束后,输出格子计数。 2. 广搜 将起始位置做标记,而后入队。每出队

君义NOIP的博客 4289

电化学阻抗谱(EIS)在锂离子电池中的应用

摘要电化学阻抗谱(electrochemical impedance spectroscopy, EIS)是一种重要的电化学测试方法,在锂离子电池动力学反应机理研究及动力学参数测量等方面具有广泛的应用。在锂离子电池运行过程中,各反应步骤的动力学参数及时间常数不同,而EIS可以在较宽的频率范围内对体系施加小幅正弦激励信号,使得在特定频率下突出特定时间常数的电极过程,从而将复杂的电极过程分离,实现单一电极过程动力学的分析。通过对交流阻抗信息的研究,也可以为锂离子电池及其他电池的应用与管理、电化学过程设计及电极材

qiushireader的博客 2651

智慧园区——解读零碳智慧园区全域双碳管理建设方案【附全文阅读】

《零碳智慧园区全域双碳管理建设方案》为园区开发运营企业、政府部门及绿色能源服务商等提供系统性指导。方案基于"背景-理念-路径"框架,首先分析全球双碳趋势及我国园区高碳排放现状,明确零碳园区价值;其次提出"数字+绿色"双动力理念,构建数字底座与绿色能源体系;最后详细规划实施路径,包括碳排查、绿能规划、能效优化、碳交易等全流程管理,结合数字孪生技术实现可视化管控,助力园区实现碳中和目标。

cdfunlove的博客 206

信息学奥赛一本通--1216:红与黑

算法:dfs 注意:这里标记并不是不能走过没走的路,只是把找到过的标记一下,防止重复找,陷入死循环 #include <iostream> using namespace std; const int N=30; char g[N][N]; int n,m,ans=1; void dfs(int x,int y) { int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; for(int i=0; i<4; i++) { int x1

weixin_52068218的博客 757

Spring AI 项目实战(十):Spring Boot + AI + DeepSeek 构建智能合同分析技术实践(附完整源码)

摘要:基于Spring AI的智能合同审核系统开发 本文介绍了基于Spring Boot 3.2.0和Spring AI 1.0.0-M4构建的智能合同审核系统。系统采用分层架构设计,整合DeepSeek API实现文档解析、条款提取和风险分析功能。核心技术栈包括Spring AI、H2数据库、Apache POI/PDFBox等文档处理工具,实现了合同条款语义分析、异常识别和审核报告自动生成。项目解决了传统人工审核效率低、主观性强等问题,为合同管理提供了智能化解决方案。文章详细阐述了系统架构设计、技术选型

博客 654

Red and Black

其实这样的题目一直没怎么想通是怎么回事儿,因为先前知道的宽搜和这个有点混乱。经常做题是好的,本来就天资平平,不努力怎么行。 问题描述: 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 输入: 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖...

weixin_30919429的博客 908

YOLOv11 知识蒸馏完整实战:Teacher–Student 训练策略与性能飞跃

在self.alpha = alpha # 蒸馏损失权重self.temperature = temperature # 温度系数,控制分布平滑度# 输出分布蒸馏(KL散度损失)# 中间特征蒸馏(MSE损失,对齐中间层特征)# 总蒸馏损失知识蒸馏是YOLOv11在“小模型高性能部署”场景的“破局之法”——它让小模型能“站在大模型的肩膀上”,兼具速度与精度。从损失函数定义到多阶段训练,再到实战落地,本教程已为你铺就了一条清晰的路径。

m0_64661770的博客 141

在 NVIDIA DGX Spark 上运行 vLLM + Open WebUI

DGX Spark 和 GX10 都是性能强大的机器,但只有将它们视为交互式工作站而非精简版服务器,才能真正发挥它们的优势。合理利用共享资源,规划并发工作负载,并谨慎控制内存限制。做到这些,vLLM 与 Open WebUI 的结合就能成为可靠​​的日常工具,而不是脆弱的实验品。DGX平台本身价格不菲,但这并非体验此类硬件的唯一途径。多家厂商提供基于相同核心架构、价格更为亲民的系统,这些系统通常配备容量较小的固态硬盘或配置更为简化,但基本性能并未改变。

iCloudEnd的博客 1750

信息学奥赛一本通 1216:红与黑(evd)

@[TOC]信息学奥赛一本通 【题目描述】 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 【输入】 包括多组数据。每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下: 1)‘.’:黑色的瓷砖; 2)‘#’:白色的瓷砖; 3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每组数据

everwide的博客 1665

《信息化项目文档模板十二——业务需求新增/变更审批确认表 》

系列文章目录 《信息化项目文档模板一——项目需求说明书》 《信息化项目文档模板二——项目启动会文档模板》 《信息化项目文档模板三——会议纪要模板》 《信息化项目文档模板四——系统项目蓝图设计模板》 《信息化项目文档模板五——系统详细设计模板》 《信息化项目文档模板六——系统详细设计模板》 《信息化项目文档模板七——系统开发计划模板》 《信息化项目文档模板八——系统功能测试模板》 《信息化项目文档模板九——系统压力测试模板》 《信息化项目文档模板十——系统推广上线计划模板》 《信息化项目文档模板十一——系统用

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1712

信息学奥赛一本通1216:红与黑题解

信息学奥赛一本通1216:红与黑题解

m0_60967975的博客 2248

【2026 Science Robotics】Learning realistic lip motions for humanoid face robots

哥伦比亚大学Yuhang Hu团队提出了一种创新方法,通过10自由度软体嘴唇设计和自监督学习算法解决仿人机器人嘴唇动作僵硬问题。研究采用变分自编码器(VAE)和面部动作Transformer(FAT)模型,将语音信号转化为机器人可执行的电机指令。实验表明,该方法在多语言测试中表现优异,用户偏好率达62.5%,显著提升了口型同步的真实感和流畅度。该成果突破了传统机械结构的限制,为跨越"恐怖谷效应"提供了有效解决方案。

志在山顶的人,不会贪念山腰的风景 308

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

信息学奥赛一本通(1216:红与黑)

1 #include <stdio.h> #include <string.h> #define N 1001 int maps[N][N]; //瓷砖矩阵 int w,h; //瓷砖规模 int cnt; //统计瓷砖数 int vis[N][N]; //访问数组 int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}}; //方向数组 void dfs(int x,int y) { i...

1156

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【题解=信息学奥赛一本通】1216:红与黑

每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。当在一行中读入的是两个零时,表示输入结束。不要回溯,会超时,本题计算的是连通块大小。

写代码的犄角旮瘩 243

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

信息学奥赛一本通 1216:红与黑 搜索与回溯算法

每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。在接下来的H行中,每行包括W个字符。有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。当在一行中读入的是两个零时,表示输入结束。1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;

长春高老师编程 1404

信息学奥赛一本通 1216:红与黑 dfs搜索 (耙耙)

1216:红与黑 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 10821 通过数: 4276 【题目描述】 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 【输入】 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方...

广东省清远市博爱学校—尚贤的博客 722

信息学奥赛一本通 1216:红与黑

信息学奥赛一本通 1216:红与黑 可以用DFS向四周一步步搜 int z=x+dx[i],w=y+dy[i]; if(0

dxtucgjchfxfy的博客 274

红与黑(信息学奥赛一本通-1216)

每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。在接下来的H行中,每行包括W个字符。有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。当在一行中读入的是两个零时,表示输入结束。1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;

2402_84298973的博客 715

红与黑(信息学奥赛一本通-T1216)

【题目描述】 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 【输入】 包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下: 1)‘.’:黑...

Alex_McAvoy的博客 1万+

c++信息学奥赛一本通1216题解

c++信息学奥赛一本通1216题解

Asad_Yuen的博客 554

信息学奥赛一本通:深搜与回溯

每组数据的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。在接下来的H行中,每行包括W个字符。有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。对每组数据,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。当在一行中读入的是两个零时,表示输入结束。1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;

D1258865的博客 512

信息学奥赛一本通(C++版)第二部分 基础算法例题及课后题解

1310 【例2.2】车厢重组。1311 【例2.5】求逆序对。1186 出现次数超过一半的数。1176 谁考了第k名。1177 奇数单增序列。1181 整数奇偶排序。1184 明明的随机数。1180 分数线划定。1187 统计字符数。1178 成绩排序。1182 合影效果。1183 病人排队。1185 单词排序。1179 奖学金。

长春高老师编程 2995
上一篇: 断更提醒!
下一篇: devc++跑酷游戏2.0.0
Jsjjsnmsk
博客等级 码龄4年 548粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值