title: 蓝桥杯T35 危险系数(DFS)
date: 2018-11-26 17:30:39
tags: [算法,蓝桥杯,DFS]
categories: [算法]

Description

抗日战争时期,冀中平原的地道战曾发挥重要作用。

地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。

我们来定义一个危险系数DF(x,y):

对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。

本题的任务是:已知网络结构,求两站点之间的危险系数。

Input

输入数据第一行包含2个整数n(2 <= n <= 1000), m(0 <= m <= 2000),分别代表站点数,通道数;

接下来m行,每行两个整数 u,v (1 <= u, v <= n; u != v)代表一条通道;

最后1行,两个数u,v,代表询问两点之间的危险系数DF(u, v)。

Output

一个整数,如果询问的两点不连通则输出-1.

Sample Input

7 6 1 3 2 3 3 4 3 5 4 5 5 6 1 6

Sample Output

2

思路

从起点开始用DFS遍历到终点,并对路径记录,最终得到路径数和每条路径每个点是否经过的信息,判断若该点经过次数路径数且不为起点终点,则为“关键点”。

注意

对路径上经过的点增加 是1到depth-1

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<iostream>
#include<map>
​
using namespace std;
const int MAXN=1005;
map<int,int> mp;
int G[MAXN][MAXN];
int vis[MAXN];
int st,ed;
int way=0;
int n,m,u,v;
int go[MAXN];
void DFS(int u,int depth)
{if(u==ed){way++;for(int i=1;i<depth;i++){mp[ go[i] ]++;//cout<<"go["<<i<<"]  "<<go[i]<<endl;}return;}
​for(int v=1;v<=n;v++){if(!vis[v]&&G[u][v]){vis[v]=1;go[depth]=v;DFS(v,depth+1);vis[v]=0;}}
}
​
int main()
{cin>>n>>m;memset(G,0,sizeof(G));memset(vis,0,sizeof(vis));memset(go,0,sizeof(go));for(int i=1;i<=n;i++)mp[i]=0;while(m--){cin>>u>>v;G[u][v]=1;G[v][u]=1;}cin>>st>>ed;DFS(st,1);int ans=0;for(int i=1;i<=n;i++){if(mp[i]!=0)//cout<<"mp["<<i<<"]= "<<mp[i]<<endl;if(i!=st&&i!=ed&&mp[i]==way)ans++;}if(!ans)cout<<"-1"<<endl;elsecout<<ans<<endl;
return 0;
}

蓝桥杯T35 危险系数(DFS)相关推荐

  1. Java算法学习:蓝桥杯——地宫寻宝(DFS+动态规划—记忆型递归)

    Java算法学习:蓝桥杯--地宫寻宝(DFS✖记忆型递归) 题目: 标题:地宫取宝X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出 ...

  2. 【蓝桥杯 数独填数 DFS】

    蓝桥杯 数独填数 DFS 题目描述 代码 题目描述 你一定听说过"数独"游戏.如[图1.png],玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列 ...

  3. [蓝桥杯][2013年第四届真题]危险系数-dfs+图的遍历

    题目描述 问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险 ...

  4. [蓝桥杯2019初赛]迷宫-DFS、BFS两种方法

    迷宫问题的最短路,加最小字典序 迷宫文件maze.txt传送门 作者写的2019年B组蓝桥杯解集 . . . DFS的版本 #include<iostream> #include<c ...

  5. 蓝桥杯2015初赛生命之树 DFS图解

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 蓝桥杯2015初赛生命之树

  6. 蓝桥杯 - 牌型种数(dfs)

    小明被劫持到X赌城,被迫与其他3人玩牌. 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张. 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先 ...

  7. [蓝桥杯2018初赛]全球变暖-dfs,bfs,连通块

    解题思路: bfs:遍历所有未遍历过的陆地,通过bfs计算出当前位置连通陆地的数量cnt,以及被淹没陆地的数量bound,若cnt == bound表示完整淹没的一个岛屿 dfs:将连通块全部标记,如 ...

  8. 蓝桥杯2017初赛-迷宫-dfs

    题目描述 X星球的一处迷宫游乐场建在某个小山坡上.它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母.我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间,R表示走到右边 ...

  9. 蓝桥杯——完美正方形(dfs)

    完美正方形 如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形. 历史上,人们花了很久才找到了若干完美正方形.比如:如下边长的22个正方形 2 3 4 6 7 8 12 1 ...

最新文章

  1. 隐藏探针显示php版本号,修改版雅黑PHP探针 支持PHP7+(v0.4.7.2)
  2. 【c语言】打印*型金字塔
  3. 【杂谈】购言有三签名纪念版书籍,送1~3副有三AI学习扑克牌
  4. 基于概率学的SLAM 学习
  5. 廖雪峰Java1-3流程控制-9break、continue
  6. ant java 外部jar包_java – 在使用Ant的新jar文件构建中包括外部jar文件
  7. 小米集团2021年Q4净利润45亿元 同比增长39.6%
  8. 计算机考研复试难,艰难与快乐:2008年重庆邮电大学计算机考研复试经历
  9. python爬取知乎热门话题及其回答(requests中session保持cookies的应用)
  10. 【2022】将3D目标检测看作序列预测-Point2Seq: Detecting 3D Objects as Sequences
  11. 【转载】Attention Mechanism in Deep Learning
  12. No result defined for action com.lzj.web.action.CustomerAction and result input
  13. Nginx无证书反向代理
  14. linux转置的命令,转置文件(awk)
  15. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(4)
  16. 怎样导出ZBrush中的模型和贴图
  17. springmvc接收请求参数(springmvc教程二)
  18. 面包板入门电子制作(class1)视频 全套30集高清
  19. Cannot determine value type from string ‘5ca68b45-78bc-4a68-b3a6-97b0ff73797‘
  20. android拍照保存照片方向,Android:Camera2开发详解(上):实现预览、拍照、保存照片等功能...

热门文章

  1. 手机刷卡变砖怎么办?900e转9008救砖!!
  2. 以太坊会带来哪些变化
  3. AbstractQueuedSynchronizer(AQS)源码实现
  4. 香甜的黄油 Sweet Butter SPFA
  5. 骨架图的模拟js实现
  6. AXURE RP EXTENSION For Chrome安装与修复
  7. 豆豆。。。豆豆。。。
  8. 【数据结构】链表OJ特别篇 —— 面试情景带你深度剖析 环形链表系列问题 复制带随机指针的链表
  9. 欧元汇率java测试题_目前,多数国家(包括我国人民币)采用的汇率标价法是( )。_学小易找答案...
  10. nodejs+vue美容院美妆化妆品商城管理系统 mysql vscode项目