题目描述
问题描述
抗日战争时期,冀中平原的地道战曾发挥重要作用。
地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。
我们来定义一个危险系数DF(x,y):
对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。
本题的任务是:已知网络结构,求两站点之间的危险系数。
输入
输入数据第一行包含2个整数n(2 < = n < = 1000), m(0 < = m < = 2000),分别代表站点数,通道数;
接下来m行,每行两个整数 u,v (1 < = u, v < = n; u != v)代表一条通道;
最后1行,两个数u,v,代表询问两点之间的危险系数DF(u, v)。
输出
一个整数,如果询问的两点不连通则输出-1.
样例输入
7 6
1 3
2 3
3 4
3 5
4 5
5 6
1 6
样例输出
2
思路:求两个点之间的割点,emmmm一开始想的是求图的割点,但是好像又没多大关系。数据量为1000,我们将每一个点都设置为割点,看能否从u走到v。这样是O(n^2)的时间复杂度,不会超时。网上有大佬用的深搜+回溯,寻找u->v的所有路径,时间复杂度应该差不多。
代码如下:

#include<bits/stdc++.h>
#define ll long long
using namespace std;const int maxx=2e3+100;
struct edge{int to,next;
}e[maxx<<1];
int head[maxx<<1],vis[maxx];
int n,m,tot;
int u,v;inline void init()
{memset(head,-1,sizeof(head));tot=0;
}inline void add(int u,int v)
{e[tot].next=head[u],e[tot].to=v,head[u]=tot++;
}
inline void dfs(int u)
{vis[u]=1;if(u==v) return ;//一个小小的剪枝for(int i=head[u];i!=-1;i=e[i].next){int to=e[i].to;if(vis[to]) continue;dfs(to);}
}
int main()
{scanf("%d%d",&n,&m);init();int x,y;for(int i=1;i<=m;i++){scanf("%d%d",&x,&y);add(x,y);add(y,x);}scanf("%d%d",&u,&v);int ans=0;for(int i=1;i<=n;i++){if(i==u||i==v) continue;for(int j=1;j<=n;j++) vis[j]=0;vis[i]=1;dfs(u);if(vis[v]==0) ans++;}printf("%d\n",ans);return 0;
}

努力加油a啊,(o)/~

[蓝桥杯][2013年第四届真题]危险系数(暴力+dfs)相关推荐

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

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

  2. [蓝桥杯][2013年第四届真题]剪格子(dfs)

    题目描述 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. ±-–±-+ |10 1|52| ±-***–+ |20|30 1 ...

  3. [蓝桥杯][2013年第四届真题]幸运数-模拟+dfs

    题目描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,- 1 就是第一个幸运数. 我们从2这个数开始.把所 ...

  4. 问题 1446: [蓝桥杯][2013年第四届真题]核桃的数量

    问题 1446: [蓝桥杯][2013年第四届真题]核桃的数量 时间限制: 1Sec 内存限制: 128MB 提交: 2274 解决: 1438 题目描述 小张是软件项目经理,他带领3个开发组.工期紧 ...

  5. [蓝桥杯][2013年第四届真题]买不到的数目-模拟,数论

    题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...

  6. [蓝桥杯][2013年第四届真题]核桃的数量-枚举(水题)

    题目描述 小张是软件项目经理,他带领3个开发组.工期紧,今天都在加班呢.为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑).他的要求是: 各组的核桃数量必须相同 各组内必须能平分核桃(当然是不能打 ...

  7. 蓝桥杯训练题1427: [蓝桥杯][2013年第四届真题]买不到的数目【筛选符合题目的数字。有点类似筛素数】

    题目链接: https://www.dotcpp.com/oj/problem1427.html 题目描述: 思路: 首先就是感觉这个题目好像有点不严谨.题目说的是输入为两个正整数,而且只要不大于10 ...

  8. [蓝桥杯][2013年第四届真题]带分数

    题目描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714. 还可以表示为:100 = 82 + 3546 / 197. 注意特征:带分数中,数字1~9分别出现且只出现一次( ...

  9. [蓝桥杯][2013年第四届真题]买不到的数目(动态规划)

    题目描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. ...

最新文章

  1. LabVIEW机器视觉系统图像畸变、校准和矫正(基础篇—3)
  2. java b2b b2c o2o分布式电子商务云平台
  3. Proguard 部分类不混淆的技巧
  4. 船长带你看书——《selenium2 python 自动化测试实战》(2)浏览器操作
  5. java死锁的产生与解决
  6. 金九银十,史上最强 Java 面试题整理。
  7. 学习如何写PHP MVC框架(1) -- 路由
  8. 【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)
  9. IE下Ajax缓存(转载)
  10. iOS 虚拟GPS 就是为了玩pokemon go 哈哈哈哈
  11. 路由器和带宽猫、AP、AC、交换机
  12. “新基建”对下沉市场意味着什么?
  13. ps批量处理--像素大小修改
  14. 值得关注的18支基金
  15. 抖音测试软件app,抖音抑郁症测试app
  16. 什么是RAID?RAID有什么用?RAID原理
  17. 输入框有值无法输入问题
  18. 如何在自己的电脑开服务器(内网穿透)
  19. JUC-07-CAS
  20. 云服务器就是虚拟主机,为什么很多人说云主机就是虚拟主机?

热门文章

  1. 信息收集——子域名收集
  2. Android与Js交互时,屏幕不适配问题
  3. java el表达式 导航规则_javaweb之EL表达式语言
  4. placeholder如何实现换行
  5. iphone闪退修复工具_iOS14到底怎么样?汇总2866部iPhone的升级体验
  6. Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法
  7. 计算机二级操作范文,计算机二级考试(范文).doc
  8. GitHub+Jenkins持续集成简介
  9. ux.form.field.SearchField 列表、树形菜单查询扩展
  10. An unspecified error occurred!