博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
A. Ice Skating (联通块)
阅读量:4311 次
发布时间:2019-06-06

本文共 810 字,大约阅读时间需要 2 分钟。

题目链接:

 

本题题意:在坐标系上有n个点,给出n个点的坐标,然后只能竖直或者横向移动,问最少需要建立几个中间点才能够从一个点出发到达所有的点

 

这道题是联通块的题 ,最后求出联通块块数 - 1 就可以了!

 

也可以考虑并查集!

 

AC代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 9 using namespace std;10 11 using namespace std;12 int n,x[101],y[101],vis[101];13 void dfs(int i)14 {15 vis[i]=1;16 for(int j=1;j<=n;j++)17 {18 if((x[j]==x[i]||y[j]==y[i])&&!vis[j])19 {20 dfs(j);21 }22 }23 }24 int main()25 {26 int ans=-1;27 scanf("%d",&n);28 for(int i=1;i<=n;i++)29 {30 scanf("%d%d",&x[i],&y[i]);31 }32 for(int i=1;i<=n;i++)33 {34 if(!vis[i])35 {36 dfs(i);37 ans++;38 }39 }40 printf("%d\n",ans);41 return 0;42 }43 44

 

转载于:https://www.cnblogs.com/-Ackerman/p/11173645.html

你可能感兴趣的文章
__tostring()和__invoke()的用法
查看>>
作业6
查看>>
es6中promise的用法
查看>>
实现双向绑定
查看>>
java websocket开发的客户端程序
查看>>
Java中关键词之this,super的使用
查看>>
人工智能暑期课程实践项目——智能家居控制(一)
查看>>
前端数据可视化插件(二)图谱
查看>>
kafka web端管理工具 kafka-manager【转发】
查看>>
获取控制台窗口句柄GetConsoleWindow
查看>>
Linux下Qt+CUDA调试并运行
查看>>
3.1.1;例3-1
查看>>
BZOJ4066: 简单题
查看>>
用户添加修改文件的操作
查看>>
C# 2015关键字
查看>>
PostgreSQL 数据库备份
查看>>
Binder
查看>>
RabbitMQ 在Linux环境中的默认位置
查看>>
Xcode找Library位置
查看>>
[P1121]环状最大两段子段和
查看>>