【图论】【并查集】矩形(ssl 1222)

矩形

ssl 1222

题目大意:

有n个矩阵,现在将有重叠部分的两个矩阵合并成一个图形,问有多少个图形

原题:

题目描述

在一个平面上有n个矩形。每个矩形的边都平行于坐标轴并且都具有值为整数的顶点。我们用如下的方式来定义块。
 每一个矩形都是一个块。
 如果两个不同的矩形有公共线段,那么它们就组成了一个新的块来覆盖它们原来的两个块。
例子:
在图1中的矩形组成了两个不同的块。
在这里插入图片描述
写一个程序:
从文件PRO.IN中读入矩形的个数以及它们的顶点。
找出这些矩形形成的不同的块的个数。
将结果写入文件PRO.OUT。

输入

在输入文件PRO.IN的第一行又一个整数n,1 <= n <=7000,表示矩形的个数。接下来的n行描述矩形的顶点,每个矩形用四个数来描述:左下顶点坐标(x,y)与右上顶点坐标(x,y)。每个矩形的坐标都是不超过10000的非负整数。

输出

在文件PRO.OUT的第一行应当仅有一个整数—表示由给定矩形组成的不同的块的个数。

输入样例

9
0 3 2 6
4 5 5 7
4 2 6 4
2 0 3 2
5 3 6 4
3 2 5 3
1 4 4 7
0 0 1 4
0 0 4 1

输出样例

2

样例解释

如下图,第1,2,4,7,8,9个矩阵合并成一个图形,第3,5,6个矩阵合并成一个图形
在这里插入图片描述

解题思路:

判断两个矩阵是否重合,如果重合,那么用并查集连接在一起,最后判断,自己是根节点的点有多少个即可

代码:

#include<cstdio>
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
using namespace std;
int n,xx,yy,ans,dad[7005];
struct rec
{int x1,y1,x2,y2;
}a[7005];
bool pd(int x,int y)//判断是否重合
{if ((a[x].x1==a[y].x2||a[y].x1==a[x].x2)&&(a[x].y1==a[y].y2||a[y].y1==a[x].y2)) return false;if (a[x].x1<=a[y].x2&&a[y].x1<=a[x].x2&&a[x].y1<=a[y].y2&&a[y].y1<=a[x].y2) return true;return false;
}
int find(int dep){return dad[dep]==dep?dep:dad[dep]=find(dad[dep]);}//并查集
void hb(int x,int y)//合并
{xx=find(x);yy=find(y);dad[min(xx,yy)]=max(xx,yy);
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;++i){dad[i]=i;scanf("%d %d %d %d",&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2);for (int j=1;j<i;++j)if (pd(i,j)) hb(i,j);}for (int i=1;i<=n;++i)if (find(i)==i)//判断ans++;printf("%d",ans);
}

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

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

相关文章

Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一)

图片或者文件上传相信大家在开发中应该都会用到吧&#xff0c;有的时候还要对图片生成缩略图。那么如何在Asp.Net Core Web Api实现图片上传存储以及生成缩略图呢&#xff1f;今天我就使用MongoDB作为图片存储&#xff0c;然后使用SixLabors作为图片处理&#xff0c;通过一个As…

FFT算法学习笔记

写在前边 1.辣鸡RRRR_wys之前csdn的博客&#xff0c;千年不更。。。还很水。。。于是开了这个Blog。。。妄图拯救一下自己 2.最近接触了一些多项式理论。于是翘掉了愉快的高频自控&#xff0c;通过《算导》稍稍学习了一下 3.算法竞赛中&#xff0c;FFT主要解决多项式的乘法等问…

System.IO.Pipelines: .NET高性能IO

本文翻译自dotnet团队博客文章&#xff1a;https://blogs.msdn.microsoft.com/dotnet/2018/07/09/system-io-pipelines-high-performance-io-in-net/ System.IO.Pipelines是一个新的库&#xff0c;旨在简化在.NET中执行高性能IO的过程。它是一个依赖.NET Standard的库&#xff…

.NET+PostgreSQL实践与避坑指南

简介.NETPostgreSQL(简称PG)这个组合我已经用了蛮长的一段时间&#xff0c;感觉还是挺不错的。不过大多数人说起.NET平台&#xff0c;还是会想起跟它“原汁原味”配套的Microsoft SQL Server(简称MSSQL)&#xff0c;其实没有MSSQL也没有任何问题&#xff0c;甚至没有Windows Se…

Jimu : .Net Core 分布式微服务框架介绍

一、前言近些年一直浸淫在 .Net 平台做企业应用开发&#xff0c;用过的 .Net 框架不多&#xff08;具体数量不清&#xff0c;印象深刻的有 Asp.Net MVC&#xff0c;WPF&#xff0c;其他很多都是基于微软开发的框架做些封装而形成新的框架&#xff0c;大都是还没起好名就湮灭在历…

.NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码

前言上一篇博客中我们可以得知通过Swagger插件可以很方便的提供给接口开发者在线调试&#xff0c;但是实际上Swagger附带的功能还有很多&#xff0c;比如使用NSwag生成客户端调用代码&#xff0c;进一步解放接口开发者。NSwag NSwag是一个发布在GitHub上的开源项目&#xff0c;…

使用.NetCore 控制台演示 熔断 降级(polly)

1、熔断降级的概念&#xff1a; 熔断&#xff1a;我这里有一根长度一米的钢铁&#xff0c;钢铁的熔点1000度&#xff08;假设&#xff09;&#xff0c;现在我想用力把这根钢铁折弯&#xff0c;但是人的力有限达不到折弯的点&#xff0c;然后我使用火给钢铁加热&#xff0c;每隔…

给正在努力的您几条建议(附开源代码)

前言我是一名在广州的某家互联网公司工作&#xff0c;并有6年工作经验&#xff0c;奔着架构师与微软MVP为目标的老鸟程序员。最近回顾了下多年来走的路&#xff0c;有不少的弯路。今天不说技术&#xff0c;而是总结了一些职业生涯上的建议与大家分享。虽说今天不说技术&#xf…

.Net Core Cors中间件解析

同源策略和资源跨域共享1、同源策略同源策略&#xff0c;它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指&#xff0c;域名&#xff0c;协议&#xff0c;端口相同。1.1、目的主要是为了保证用户信息的安全&#xff0c…

用Way.EntityDB进行Entity Framework Core数据库建模

Way.EntityDB是一个基于EF Core的数据层框架&#xff0c;它取消了EF Core的Migration机制&#xff0c;因为Migration并不是通用的&#xff0c;比如说sql server生成的migration&#xff0c;如果换成sqlite&#xff0c;运行时会报错的&#xff0c;也就是数据库不能更换。Way.Ent…

.NET Core开发日志——Runtime IDentifier

.NET Core对于传统.NET开发人员而言是既熟悉又陌生的新平台&#xff0c;所以有时遇上出乎意料的事情也纯属正常情况。这时只需点耐心&#xff0c;多查查资料&#xff0c;努力找到原因&#xff0c;也未尝不是件有意义的体验。比如当建完一个最简单的控制台应用程序&#xff1a;d…

Full_of_Boys训练5总结

题目来源&#xff1a;2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest A. Advertising Strategy 贪心方法&#xff1a;把一部分k放到初始值&#xff0c;剩下一部分&#xff0c;等到最后用。然后&#xff0c;枚举第一部分放多少即可。 #include <bits/stdc.h> typ…

C#语法——await与async的正确打开方式

C#5.0推出了新语法&#xff0c;await与async&#xff0c;但相信大家还是很少使用它们。关于await与async有很多文章讲解&#xff0c;但有没有这样一种感觉&#xff0c;你看完后&#xff0c;总感觉这东西很不错&#xff0c;但用的时候&#xff0c;总是想不起来&#xff0c;或者不…

好代码是管出来的——.Net Core集成测试与数据驱动测试

软件的单元测试关注是的软件最小可执行单元是否能够正常执行&#xff0c;但是软件是由一个个最小执行单元组成的集合体&#xff0c;单元与单元之间存在着种种依赖或联系&#xff0c;所以在软件开发时仅仅确保最小单元的正确往往是不够的&#xff0c;为了保证软件能够正确运行&a…

【高精】【快速幂】穿越丛林(ssl 2314)

穿越丛林 ssl 2314 题目大意&#xff1a; 求2n2^n2n 原题&#xff1a; 题目描述&#xff1a; ljj 是一位富有冒险心又很喜欢研究数学的孩纸&#xff0c;有一天&#xff0c;他到一个丛林冒险&#xff0c;这里的树长有像0、4、6、8、9这样形状的洞&#xff0c;他要想穿过丛…

谈谈surging引擎的tcp、http、ws协议和如何容器化部署

1、前言分布式已经成为了当前最热门的话题&#xff0c;分布式框架也百花齐放&#xff0c;群雄逐鹿。从中心化服务治理框架&#xff0c;到去中心化分布式服务框架&#xff0c;再到分布式微服务引擎&#xff0c;这都是通过技术不断积累改进而形成的结果。esb,网关&#xff0c;ngi…

Helm - Kubernetes服务编排的利器

Helm介绍在Kubernetes中部署容器云应用&#xff08;容器或微服务编排&#xff09;是一项有挑战性的工作&#xff0c;Helm就是为了简化在Kubernetes中安装部署容器云应用的一个客户端工具。通过Helm能够帮助开发者定义、安装和升级Kubernetes中的容器云应用。同时&#xff0c;也…

.NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)

一、预备知识&#xff1a;数据一致性关于数据一致性的文章&#xff0c;园子里已经有很多了&#xff0c;如果你还不了解&#xff0c;那么可以通过以下的几篇文章去快速地了解了解&#xff0c;有个感性认识即可。&#xff08;1&#xff09;左正&#xff0c;《保证分布式系统数据一…

Asp.NetCoreWebApi图片上传接口(二)集成IdentityServer4授权访问(附源码)

写在前面本文地址&#xff1a;http://www.cnblogs.com/yilezhu/p/9315644.html作者&#xff1a;yilezhu上一篇关于Asp.Net Core Web Api图片上传的文章使用的是mongoDB进行图片的存储&#xff0c;文章发布后&#xff0c;张队就来了一句&#xff0c;说没有使用GridFS。的确博主只…

.NET Core开发日志——从ASP.NET Core Module到KestrelServer

ASP.NET Core程序现在变得如同控制台(Console)程序一般&#xff0c;同样通过Main方法启动整个应用。而Main方法要做的事情很简单&#xff0c;创建一个WebHostBuilder类&#xff0c;调用其Build方法生成一个WebHost类&#xff0c;最后启动之。实现代码一目了然&#xff1a;要想探…