码迷,mamicode.com
首页 > 移动开发 > 详细

A. Ice Skating (联通块)

时间:2019-07-12 00:53:47      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:dfs   span   col   ORC   移动   pre   建立   set   amp   

题目链接:http://codeforces.com/problemset/problem/217/A

 

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

 

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

 

也可以考虑并查集!

 

AC代码:

 1 #include <cstdio>
 2 #include <string>
 3 #include <iostream>
 4 #include <algorithm>
 5 #include <string.h>
 6 #include <math.h>
 7 #include <vector>
 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  

 

A. Ice Skating (联通块)

标签:dfs   span   col   ORC   移动   pre   建立   set   amp   

原文地址:https://www.cnblogs.com/-Ackerman/p/11173645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!