用图的dfs遍历来算删除结点后连通块的个数,连通块的个数减1就是需要添加的线的个数

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<string>
#include<math.h>
#include<algorithm>
#include<map>
#include<cstring>
using namespace std;
const int maxv = 1001;
vector<int>g[maxv];
bool vis[maxv];int currentpoint;
void dfs(int v)
{if (v == currentpoint)return;vis[v] = true;for (int i = 0; i < g[v].size(); i++){if(vis[g[v][i]]==false)dfs(g[v][i]);}
}int main()
{int n, m, k;scanf("%d%d%d",&n,&m,&k);for (int i = 0; i < m; i++){int a, b;scanf("%d%d",&a,&b);g[a].push_back(b);g[b].push_back(a);}for (int j = 0; j < k; j++){scanf("%d",&currentpoint);memset(vis, false, sizeof(vis));int block = 0;for (int i = 1; i <= n; i++){if (i != currentpoint && vis[i] == false){dfs(i);block++;}}cout << block - 1 << endl;}
}

A1013 Battle Over Cities [图的dfs遍历]相关推荐

  1. 1013 Battle Over Cities(图的DFS解法)

    这题的背景是战争年代,假如城市1被占领,那么所有和城市1相关的公路都要被炸毁,但是这样一来,2和3就不连通了,所以需要补修一条23之间的公路.但是换做城市2或3被占领,1和另一座城市是联通的,并不需要 ...

  2. PAT甲级A1013. Battle Over Cities (25)

    题目描述 It is vitally important to have all the cities connected by highways in a war. If a city is occ ...

  3. C++实现邻接矩阵存储的图及dfs遍历

    #include <iostream> using namespace std; #define MaxInt 1e8 #define MVNum 100//最大顶点数 typedef c ...

  4. 1013 Battle Over Cities(并查集解法)

    关于背景的介绍见1013 Battle Over Cities(图的DFS解法) DFS就是不算特定结点后数连通子图的总数,再减一.我想着那么并查集就是数不算特定节点后,集合元素(根)的个数.但是我弄 ...

  5. [C] 图的深度优先遍历

    图的DFS遍历 首先我们需要知道什么是图 简单地说,图就是由一些小圆点(称为顶点)和连接这些小圆点的直线(称为边)组成的.例如上图是由五个顶点(编号为1,2,3,4,5)和五条边(1-2,1-3,1- ...

  6. DFS遍历图时的小技巧

    DFS遍历图时的小技巧 我们通常使用DFS遍历图时,用vis[i]=true;来标记访问过的节点,但是如果要让我们统计图中所有边的长度的话,如果我们还这样做的话,对于非环形图来说,没问题,但是对于环形 ...

  7. 图的深度优先遍历和广度优先遍历_图的深度优先遍历(DFS)与广度优先遍历(BFS)的c语言实现...

    头文件 #pragma warning( disable : 4996)#pragma once#ifndef _GRAPH_H_#define _GRAPH_H_ #define MAX_VERTE ...

  8. 图的遍历 DFS遍历(深学思维)

    前言: 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 问题描述: 马上到寒假了,YHC准备去n大城市游玩.这些城市之间有些有航线,有些没有.由于YHC特别懒,现在他想请一位更更更更更蒟蒻 ...

  9. 算法学习:图的深度优先遍历(DFS)

    图的深度优先遍历 采用邻接矩阵表示图的方法,递归实现. 栈的使用: 头文件:<stack> s.empty():栈空则返回true,否则返回false s.top():返回栈顶元素,不删除 ...

  10. 图的深度优先遍历DFS(JAVA)

    图的深度优先遍历算法 在此介绍图的基本算法之一的深度优先遍历(DFS)算法 广度优先搜索(BFS). 什么是DFS 图是由节点(Node)和路径(Route)组成的一种数据结构,用于反应各节点间的关系 ...

最新文章

  1. wpf 自定义Button按钮
  2. android网络技术-WebView的用法
  3. 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
  4. AbpZero之企业微信---登录(拓展第三方auth授权登录)---第一步:查看AbpZero的auth第三方登录的底层机制...
  5. 第一次冲刺个人博客07
  6. android画布一闪一闪的,解决Android SurfaceView绘制触摸轨迹闪烁问题的方法
  7. forEach和for in
  8. redis将散裂中某个值自增_Redis总结
  9. php 上传图片 预览 多张,uploadify插件实现多个图片上传并预览
  10. HTTP相关知识 --转载
  11. latex 目录层次设置
  12. 最经济方案 谈P2P电影服务器
  13. 集合竞价选股(附源码)
  14. np和tensor转换
  15. 【小程序“600002“】现象:小程序测试版能正常的进行页面跳转,正式版不能进行页面跳转
  16. supervisor 同时开启多个进程 numprocs 1
  17. 2018硅谷巨头七大丑闻算总账
  18. 笔试逻辑智力题找规律题总结4
  19. Linux下的Html编辑器
  20. 2022-2028全球与中国汽车空调电动变换部件市场现状及未来发展趋势

热门文章

  1. HDU - 3533 Escape
  2. 基因型填充中的phasing究竟是什么
  3. wps如何只让他显示3级标题_wps怎么把标题显示出来
  4. 13.0、veu-路由嵌套
  5. 电商(一) 创建订单业务流程
  6. 计算机圆半径计算公式,圆半径计算公式是什么?
  7. Windows【定时任务|开机启动】
  8. 如何让 uni-app 页面中的背景图片高度和宽度自适应
  9. 高数 | 【多元函数微分学】全微分不变性、隐函数求导辨析
  10. python 函数嵌套和嵌套调用