P1331 洛谷 海战

题目描述

在这里插入图片描述

思路

这个题需要读懂题意,即“什么样的形式表示两只船相撞?” ----> 上下相邻或左右相邻

 如果图是不和法的,一定存在如下结构:
# # 
. ## #
# .# .
# #. #
# #

即四个格子里有三个#,一个"."就表示相撞(找出的规律,后续可以用)
在这里插入图片描述
(借用一下洛谷题解大佬的图)
这样就表示两个不同的船只
即这个是dfs搜连通块的变形
数据量1000,还行

代码

基础的连通块
输出的时候有个。别忘了!

#include<bits/stdc++.h>using namespace std;const int N = 1e3+10;
char g[N][N];  //用字符串存储
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
bool st[N][N];  //这个其实也可以不要,直接在原图上修改
int n, m;
bool check(int x, int y)
{int ans = 0;if(g[x][y] == '#')ans++;if(g[x + 1][y] == '#')ans++;if(g[x][y + 1] == '#')ans++;if(g[x+1][y+1] == '#')ans++;if(ans == 3) //相撞return true;return false;}
void dfs(int x, int y)
{for(int i = 0; i < 4; i++){int xx = x +dx[i], yy = y +dy[i];if(xx >= 1 && xx <= n && yy >= 1 && yy <= m && g[xx][yy] == '#' && !st[xx][yy]){st[xx][yy] = true;dfs(xx, yy);}}
}
int main()
{cin >> n >> m;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> g[i][j];}}int res = 0;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){if(check(i, j)){cout<<"Bad placement."<<endl;return 0;}if(!st[i][j]&&g[i][j] == '#') //没被搜过{res ++;st[i][j] = true;dfs(i, j);
//				cout<<"ok"<<endl;}}}printf("There are %d ships.\n", res);return 0;
}

总结

难点是如何理解船相撞,多画画图!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传统项目纯前端实现导出excel之xlsx.bundle.js

传统项目纯前端实现导出excel之xlsx.js 自从vue问世后&#xff0c;使得前端开发更加简洁从容&#xff0c;极大的丰富组件样式和页面渲染效果&#xff0c;使得前端功能的可扩展性得到极大地加强。虽然vue的使用对于前后端分离的项目对于功能实现与扩展有了质的飞跃&#xff0c;但…

2025.04.10-拼多多春招笔试第四题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 04. 优惠券最优分配问题 问题描述 LYA是一家电商平台的运营经理,负责促销活动的策划。现在平台上有 n n n

基于 Spring Boot 瑞吉外卖系统开发(三)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;三&#xff09; 分类列表 静态页面 实现功能所需要的接口 定义Mapper接口 Mapper public interface CategoryMapper extends BaseMapper<Category> {}定义Service接口 public interface CategoryService extends ISe…

FlinkSQL的常用语言

FlinkSQL 常用语言指南 FlinkSQL 是 Apache Flink 提供的 SQL 接口&#xff0c;允许用户使用标准 SQL 或扩展的 SQL 语法来处理流式和批式数据。以下是 FlinkSQL 的常用语言元素和操作&#xff1a; 基本查询 -- 选择查询 SELECT * FROM table_name;-- 带条件的查询 SELECT c…

spring mvc异步请求 sse 大文件下载 断点续传下载Range

学习连接 异步Servlet3.0 Spring Boot 处理异步请求&#xff08;DeferredResult 基础案例、DeferredResult 超时案例、DeferredResult 扩展案例、DeferredResult 方法汇总&#xff09; spring.io mvc Asynchronous Requests 官网文档 spring.io webflux&webclient官网文…

一问看懂——支持向量机SVM(Support Vector Machine)

目录 芜湖~~~支持向量机&#xff08;SVM&#xff09; 1. 引言 2. 基本思想 3. 数学模型 3.1 超平面定义 3.2 分类间隔与目标函数 3.3 软间隔与松弛变量 4. 核函数方法&#xff08;Kernel Trick&#xff09; 4.1 核函数定义 4.2 常用核函数 5. SVM 的几种类型 6. SV…

蓝桥杯 拼数(字符串大小比较)

题目描述 设有 n 个正整数 a1​…an​&#xff0c;将它们联接成一排&#xff0c;相邻数字首尾相接&#xff0c;组成一个最大的整数。 输入格式 第一行有一个整数&#xff0c;表示数字个数 n。 第二行有 n 个整数&#xff0c;表示给出的 n 个整数 ai​。 输出格式 一个正整…

Elasticsearch 系列专题 - 第三篇:搜索与查询

搜索是 Elasticsearch 的核心功能之一。本篇将介绍如何构建高效的查询、优化搜索结果,以及调整相关性评分,帮助你充分发挥 Elasticsearch 的搜索能力。 1. 基础查询 1.1 Match Query 与 Term Query 的区别 Match Query:用于全文搜索,会对查询词进行分词。 GET /my_index/_…

本地电脑使用sshuttle命令将网络流量代理到ssh连接的电脑去实现访问受限网络

本地电脑使用sshuttle命令将网络流量代理到ssh连接的电脑去实现访问受限网络 安装使用 工作过程中, 经常会遇到, 需要访问客户内网环境的问题, 一般都需要安转各式各样的VPN客户端到本地电脑上, 软件多了也会造成困扰, 所有, 找了一款还不错的命令工具去解决这个痛点 安装 官方…

双相机结合halcon的条码检测

以下是针对提供的C#代码的详细注释和解释&#xff0c;结合Halcon库的功能和代码结构进行说明&#xff1a; --- ### **代码整体结构** 该代码是一个基于Halcon库的条码扫描类GeneralBarcodeScan&#xff0c;支持单台或双台相机的条码检测&#xff0c;并通过回调接口返回结果。…

python基础语法12-迭代器与生成器

Python 生成器与迭代器详解 在 Python 中&#xff0c;生成器和迭代器是处理大量数据时的强大工具。它们能够帮助我们节省内存&#xff0c;避免一次性加载过多数据。生成器通过 yield 关键字实现&#xff0c;允许我们逐步产生数据&#xff0c;而迭代器通过实现特定的接口&#…

公司内部建立pypi源

有一篇建立apt源的文章在这里&#xff0c;需要的可以查看&#xff1a;公司内部建立apt源-CSDN博客 server: pip install pypiserver mkdir -d pypi/packages cp test.whl pypi/packages pypi-server run --port 8080 /home/xu/pypi/packages & 网页访问&#xff1a;http:…

VMware Workstation/Player 的详细安装使用指南

以下是 VMware Workstation/Player 的完整下载、安装指南&#xff0c;包含详细步骤、常见问题及解决方法&#xff0c;以及进阶使用技巧&#xff0c;适用于 Windows 和 macOS 用户。 VMware Workstation/Player 的详细安装使用指南—目录 一、下载与安装详细指南1. 系统要求2. 下…

蓝桥杯python组考前准备

1.保留k位小数 round(10/3, 2) # 第二个参数表示保留几位小数 2.输入代替方案&#xff08;加速读取&#xff09; import sys n int(sys.stdin.readline()) # 读取整数&#xff08;不加int就是字符串&#xff09; a, b map(int, sys.stdin.readline().split()) # 一行读取多个…

【JSON2WEB】16 login.html 登录密码加密传输

【JSON2WEB】系列目录 【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSO…

计算机网络起源

互联网的起源和发展是一个充满创新、突破和变革的历程&#xff0c;从20世纪60年代到1989年&#xff0c;这段时期为互联网的诞生和普及奠定了坚实的基础。让我们详细回顾这一段激动人心的历史。 计算机的发展与ARPANET的建立&#xff08;20世纪60年代&#xff09; 互联网的诞生…

洛谷P1824进击的奶牛简单二分

题目如下 代码如下 谢谢观看

如何建立高效的会议机制

建立高效的会议机制需做到&#xff1a;明确会议目标、制定并提前分发议程、控制会议时长、确保有效沟通与反馈、及时跟进执行情况。其中&#xff0c;明确会议目标是核心关键&#xff0c;它直接决定了会议的方向与效率。只有明确目标&#xff0c;会议才不会偏离初衷&#xff0c;…

开源AI大模型AI智能名片S2B2C商城小程序:科技浪潮下的商业新引擎

摘要&#xff1a; 本文聚焦于科技迅猛发展背景下&#xff0c;开源AI大模型、AI智能名片与S2B2C商城小程序的融合应用。通过分析元宇宙、人工智能、区块链、5G等前沿科技带来的商业变革&#xff0c;阐述开源AI大模型AI智能名片S2B2C商城小程序在整合资源、优化服务、提升用户体验…

基于大模型构建金融客服的技术调研

OpenAI-SB api接口 https://openai-sb.com/ ChatGPT与Knowledge Graph (知识图谱)分享交流 https://www.bilibili.com/video/BV1bo4y1w72m/?spm_id_from333.337.search-card.all.click&vd_source569ef4f891360f2119ace98abae09f3f 《要研究的方向和准备》 https://ww…