PAT 1013. Battle Over Cities (25)
来源:互联网 发布:centos 编译安装git 编辑:程序博客网 时间:2024/06/06 05:36
题目:1013. Battle Over Cities (25)
思路:1. 利用并查集,剔除掉选中城市的道路,构建无向联通图。通过代表元的个数来计算需要搭建的道路数。
2.利用深度优先搜索。
代码:并查集
#include<iostream>#include<vector>using namespace std;struct road{int x,y;};//初始化根节点void init(int *c,int n){int i;for(i=1;i<=n;++i)c[i]=i;}//查找根节点int findroot(int *c,int j){if(c[j]==j)return j;else{int t=findroot(c,c[j]);c[j]=t;return t; //return findroot(c,c[j]);//仅用上面这一条,会出现同一个连接图,根节点不一样的情况}}//构建连通图void makeset(int *c,int k,vector<road> r){int i,a,b;for(i=0;i<r.size();++i){if(r[i].x!=k && r[i].y!=k)//避免选中城市加入连通图{a=findroot(c,r[i].x);b=findroot(c,r[i].y);if(a!=b)c[a]=b; //根节点改变}}}int main(){//输入int N,M,K;cin>>N>>M>>K;int i,n1,n2,n;vector<road> R(M);//输入城市联通信息,并加以排序//避免出现由于先出现编号大的城市导致根节点不一致的情况。for(i=0;i<M;++i){cin>>n1>>n2;R[i].x=n1;R[i].y=n2;}vector<int> q(K);for(i=0;i<K;++i)cin>>q[i];//查找int j,k,num;int city[1000];for(i=0;i<K;++i){init(city,N); //初始化节点makeset(city,q[i],R);num=0; for(j=1;j<=N;++j){if(city[j]==j)num++;}cout<<num-2<<endl; //-2,一是减去被选中的城市,而是num个独立城市之间需要num-1条道路}system("pause");return 0;}
阅读全文
0 0
- PAT 1013. Battle Over Cities (25) DFS
- 1013. Battle Over Cities (25)-PAT
- pat 1013. Battle Over Cities (25)
- 【PAT】1013. Battle Over Cities (25)
- PAT: 1013. Battle Over Cities (25)
- PAT A 1013. Battle Over Cities (25)
- pat 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- PAT-A 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- PAT 1013. Battle Over Cities (25)
- 【PAT甲级】1013. Battle Over Cities (25)
- PAT A 1013. Battle Over Cities (25)
- PAT(A) - 1013. Battle Over Cities (25)
- 1013. Battle Over Cities (25) PAT甲级
- [JSOI2009]球队收益
- 几种刷新
- C++三大类IO概述
- python sort() sorted()
- SpringCloud微服务系列(2): 创建一个基于Springboot的RESTFul服务
- PAT 1013. Battle Over Cities (25)
- 向量算子(梯度、散度、旋度)与拉普拉斯算符的公式与定义整理
- ZOJ2042
- 面试--数据结构(5)(树)
- 面试题:插入排序
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
- 经典Aop
- Java抽象类,接口
- python学习之路-基础篇-面向对象-day05