第四天PAT-A1013 Battle Over Cities并查集做法详解

该博客详细解释了如何使用并查集解决PAT A1013问题。当城市被占领导致连接失效时,通过计算需要修复的高速路来保持城市间的连通性。文章介绍了输入输出格式,并提供了具体的实例说明和算法应用。
摘要由CSDN通过智能技术生成

A1013

Description:

战争中,如果城市被占领,则与之相连的所有高速路失效,给出标注出所有高速路的城市地图,求需要维修的高速路数字以让剩余的城市可以连通。

举个例子,如果有三个城市,两条公路分别连接city1-city2,和city1-city3,如果city1被敌军占领,那么我们需要维修一条高速路,即city2-city3。

并查集求集合个数,高速公路数即为集合个数-1

Input:

  • 每个测试一个样例。
  • 每个样例第一行包含三个数字:总城市数N<100,总高速路数M,被占领的城市数K
  • 接下来M行,每行描述了一条高速路,两个数字表示其链接的城市
  • 城市编号从1-N
  • 最后一行包含K个询问,每个询问给出一个数字代表已被占领的城市编号

Output:

  • 分别输出K行给出需要维修的高速公路数
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 1e3+5;
bool check[maxn];   //用于标志当前节点所属集合是否已访问过
int fa[maxn];   //父节点
int n, m, k;
vector<int>adj[maxn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值