PTA由斜杠划分区域

news2024/9/22 15:25:26

在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。

返回区域的数目。

输入格式:

第一行输入一个正整数N(N<=30)

随后N行,每行输入一个长度为N的字符串,字符串仅有 /、\ 或空格构成

输出格式:

请输出由这些字符划分出来的区域数目,结果为一个正整数。

输入样例1:

2
 /
/ 

输出样例1:

2

样例解释1:

2x2 网格如下:

1.png

输入样例2:

2
\/
/\ 

输出样例2:

4

样例解释2:

2x2 网格如下:

3.png

题目大意:
给由'\','/',' '组成的n*n的图。

问分割完后有几块?

思路:

把一块分成4块,并查集。

方法:

思考每一块自身的合并情况,再考虑红线连接情况和蓝线连接情况。

核心连接区块代码:

if(c == ' ')//块内连接情况 
	for(ll i = 0 ; i < 3 ; i ++)
		bing(w+i,w+i+1);
if(c == '/')
	bing(w,w+3),bing(w+2,w+1);
if(c == '\\')
	bing(w,w+1),bing(w+2,w+3);
if(i > 0)bing(w,w-n*4+2);//红线连接情况 
if(j > 0)bing(w+3,w-3);//蓝线连接情况 
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"

const ll N = 1e5+7;
ll n,v[N];
string s;

ll find(ll x){
	return x == v[x] ? x : v[x] = find(v[x]);
}

void bing(ll x ,ll y){
	ll tx=find(x),ty=find(y);
	if(tx > ty)swap(tx,ty);
	v[ty]=tx;
}

void solve(){
	cin >> n;cin.get();
	for(ll i = 1 ; i <= n*n*4 ; i ++)v[i]=i;
	ll w=1,sum=0;
	for(ll i = 0 ; i < n ; i ++){
		getline(cin,s);
		for(ll j = 0 ; j < n ; j ++){
			char c;c=s[j];
			if(c == ' ')//块内连接情况 
				for(ll i = 0 ; i < 3 ; i ++)
					bing(w+i,w+i+1);
			if(c == '/')
				bing(w,w+3),bing(w+2,w+1);
			if(c == '\\')
				bing(w,w+1),bing(w+2,w+3);
			if(i > 0)bing(w,w-n*4+2);//红线连接情况 
			if(j > 0)bing(w+3,w-3);//蓝线连接情况 
			w+=4;
		}
	}
	for(ll i = 1 ; i <= n*n*4 ; i ++)
		if(v[i] == i)sum++;
	cout << sum << endl;
	return ;
}

int main(){
	ll t=1;//cin >> t;
	while(t--)solve();
	return 0;
}

 

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

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

相关文章

基于单片机的太阳能充电系统设计

摘要:本文所设计的太阳能充电系统主要由以下几个模块组成:STC89C52 主控模块、TP4056 充电电路、电压AD 采集模块、LCD1602 液晶显示模块和太阳能充电电池等组成。此太阳能充电器制作简单,性价比高,性能稳定。 关键词:LCD1602;太阳能充电系统;ADC0832 太阳能充电系统的充…

DARTS-: ROBUSTLY STEPPING OUT OF PERFORMANCE COLLAPSE WITHOUT INDICATORS

DARTS-&#xff1a;增加辅助跳跃连接&#xff0c;鲁棒走出搜索性能崩溃 论文链接&#xff1a;https://arxiv.org/abs/2009.01027 项目链接&#xff1a;GitHub - Meituan-AutoML/DARTS-: Code for “DARTS-: Robustly Stepping out of Performance Collapse Without Indicators…

分页多线程处理大批量数据

1.业务场景 因为需要从一个返利明细表中获取大量的数据&#xff0c;生成返利报告&#xff0c;耗时相对较久&#xff0c;作为后台任务执行。但是后台任务如果不用多线程处理&#xff0c;也会要很长时间才能处理完。 另外考虑到数据量大&#xff0c;不能一次查询所有数据在内存…

华为数通方向HCIP-DataCom H12-821题库(多选题:201-220)

第201题 以下关于BGP中Orginator ID属性的描述,正确的是哪些项? A、Originator ID属于公认任意属性 B、当其他BGP Speaker接收到这条路由的时候,将比较收到的0nginator ID和本地的Router ID,如果两个ID相同BGP Speaker会忽略掉这条路由,不做处理 C、当一条路由第一次被RR…

【目标检测】NMS算法的理论讲解

将NMS就必须先讲IOU&#xff0c; IOU就是交并比&#xff0c;两个检测框的交集除以两个检测框的并集就是IOU 为什么要做NMS操作&#xff0c;因为要去除同一个物体的多的冗余检测框 那么NMS算法是如何做的呢&#xff1f; 以上是算法的流程图 下面讲解算法的流程 首先输入是预…

爬虫Day3

用到的网页--豆瓣电影Top250 需要爬取信息&#xff1a; 数据保存在网页源代码中&#xff0c;是服务加载方式。先拿到网页源代码--request。再通过re提取想要的信息---re。 新知识&#xff1a;用csv存数据&#xff0c;可以用excel表格展示数据 import csv result obj.findite…

串口通信标准RS232 RS485 RS422的区别

RS-232、RS-422、RS-485是关于串口通讯的一个机械和电气接口标准&#xff08;顶多是网络协议中的物理层&#xff09;&#xff0c;不是通讯协议&#xff0c;它们之间的几个不同点如下&#xff1a; 一、硬件管脚接口定义不同 二、工作方式不同 RS232&#xff1a; 3线全双工 RS…

element UI季度选择器的实现

效果展示 用elementUI的select实现季度选择器 代码实现 generateQuarterOption放在methods中&#xff0c;需要近几年的只需要修改第一个循环的次数即可&#xff0c;mounted生命周期函数中调用generateQuarterOption() generateQuarterOption() {//近3年所有季度let now ne…

深入解析以太坊Dencun升级:提升网络性能与安全的关键举措

近年来&#xff0c;以太坊网络一直在不断演进和发展&#xff0c;为了应对日益增长的用户需求和挑战&#xff0c;以太坊社区不断提出并实施各种升级和改进措施。其中&#xff0c;Dencun升级作为最新的一项重大改革&#xff0c;旨在提升以太坊网络的性能和安全性&#xff0c;为其…

护眼台灯有必要买贵的吗?看看业内人士推荐的这五款!

随着学习压力的增大和担心孩子的近视&#xff0c;很多家长朋友们除了培养孩子正确的用眼习惯之外&#xff0c;也开始关注或准备添置学习用的护眼台灯&#xff0c;以缓解学习工作时的用眼疲劳&#xff0c;而相关的护眼灯也成为了市场的热门产品。而市面上护眼灯品牌众多&#xf…

CUDA从入门到放弃(四):CUDA 编程模式 CUDA Programming Model

CUDA从入门到放弃&#xff08;四&#xff09;&#xff1a;CUDA 编程模式 CUDA Programming Model 1 Kernels CUDA C 扩展了 C&#xff0c;允许定义名为内核的函数&#xff0c;这些函数可以被不同的 CUDA 线程并行执行多次&#xff0c;而不是像普通 C 函数那样只执行一次。内核…

【2024.3.26练习】画中漂流

题目描述 题目分析 根据题型分析应该可以用动态规划解决。设为第秒&#xff0c;剩余体力值为&#xff0c;且当前位置距离峡谷米时的总方案数。根据题意&#xff0c;状态转移方程如下&#xff1a; 这样定义状态的话空间复杂度为&#xff0c;大大超出了空间限制。观察转移方程左…

【SpringBoot】实现一个简单的图片上传

前端上传表单 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <form enctype"multipart/form-data" method"post" action&q…

拓展AI边界:去中心化人工智能的应用场景和主要项目盘点

随着区块链技术的发展和普及&#xff0c;去中心化人工智能&#xff08;AI&#xff09;逐渐成为技术领域的焦点之一。区块链的去中心化特性为AI技术的应用提供了新的可能性&#xff0c;使得数据共享、模型训练和应用部署更加安全、透明和可靠。本文将探索去中心化AI的应用场景&a…

【NLP学习记录】Embedding和EmbeddingBag

Embedding与EmbeddingBag详解 ●&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 ●&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 ●&#x1f680; 文章来源&#xff1a;K同学的学习圈子1、Embedding详解 Embedding是Pytorch中最基本…

Spring实例化Bean的三种方式

参考资料&#xff1a; Core Technologies 核心技术 spring实例化bean的三种方式 构造器来实例化bean 静态工厂方法实例化bean 非静态工厂方法实例化bean_spring中有参构造器实例化-CSDN博客 1. 构造函数 1.1. 空参构造函数 下面这样表示调用空参构造函数&#xff0c;使用p…

Mysql数据库函数【Mysql】

Mysql数据库函数【Mysql】 前言版权Mysql数据库函数常用函数排序与分页排序分页 单行函数2.数值函数2.1基本函数2.2角度与弧度2.3三角函数2.4指数与对数函数2.5进制间的转换 3.字符串函数4.日期和时间函数4.1获取日期、时间4.2日期与时间戳的转换4.3获取月份、星期、星期数、天…

C语言数据流讲解

目录 4.1 流&#xff08;Stream&#xff09;&#xff1a;数据流动的隐喻 4.1.1 流&#xff1a;数据传输的通用接口 4.1.2 标准流&#xff1a;预定义的流通道 4.2 文件指针&#xff1a;流操作的桥梁 4.2.1 文件指针的本质与结构 4.2.2 使用文件指针操作流 图解 结语 在C…

AI研报:从Sora看多模态大模型发展

《从Sora看多模态大模型发展》的研报来自浙商证券&#xff0c;写于2024年2月。 这篇报告主要探讨了多模态大模型的发展趋势&#xff0c;特别是OpenAI发布的视频生成模型Sora&#xff0c;以及其对行业发展的影响。以下是报告的核心内容概述&#xff1a; Sora模型的发布&#x…

错误 C2872 “byte”: 不明确的符号,在rpcndr.h或者objidl.h

主要问题出在这里面 #include “objbase.h” qtcreator 5.12 可以直接运行 vsqt2022 msvs2017就要报错 错误 C2872 “byte”: 不明确的符号 E:\GGtie\out\build\x64-debug\GGtie C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\um\objidl.h 13832 解决方法…