问题 1433: [蓝桥杯][历届试题]危险系数

时间限制: 1Sec 内存限制: 128MB 提交: 123 解决: 39

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

不论并查集还是暴力做题的思路都是差不多的,并查集优化在父节点保存上,暴力则是每次都查找一遍耗时间。
题目情况分析:
1.先判断x,y两点是否连通,不连通就没必要在运行下面了,直接输出-1即可。
2.如果连通就以此删去一个点判断删去后是否还能连通,不能则num++,能则说明这点对x,y两点的连通没有影响,以此判断后面的点。

并查集方法:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
int n,m;
int as[2345];
int a[2345][2345];
void init()
{for(int i=0;i<=n;i++)as[i]=i;
}
int getfather(int t)
{int son,tmp;son=t;while(t!=as[t])t=as[t];while(son!=t){tmp=as[son];as[son]=t;son=tmp;}return t;
}
void father(int t,int tt)
{int q=getfather(t);int w=getfather(tt);if(q!=w)as[q]=w;
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){int t,k;for(int i=0;i<m;i++){scanf("%d%d",&t,&k);a[t][k]=a[k][t]=1;father(t,k);}scanf("%d%d",&t,&k);int num=0;if(getfather(t)!=getfather(k))printf("-1\n");else{for(int l=1;l<=n;l++){init();if(l==t||l==k)continue;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(a[i][j]==1&&i!=l&&j!=l){father(i,j);}}}if(getfather(t)!=getfather(k))num++;}}printf("%d\n",num);}return 0;
}

暴力方法:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
vector<int >as[2345];
int n,m,state[2345],t,k;
void init()
{for(int i=0;i<=n;i++)as[i].clear(),state[i]=0;
}
void dfs(int dian,int sta)
{state[dian]=1;for(int i=0;i<as[dian].size();i++){if(state[as[dian][i]]==0&&as[dian][i]!=sta)dfs(as[dian][i],sta);}
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){init();for(int i=0;i<m;i++){scanf("%d%d",&t,&k);as[t].push_back(k);as[k].push_back(t);}scanf("%d%d",&t,&k);dfs(t,0);if(state[k]==0){printf("-1\n");continue;}int num=0;for(int i=1;i<=n;i++){if(i!=t&&i!=k){memset(state,0,sizeof(state));dfs(t,i);if(state[k]==0)num++;}}printf("%d\n",num);}return 0;
}

问题 1433: [蓝桥杯][历届试题]危险系数(并查集and暴力)相关推荐

  1. 蓝桥杯 历届试题 危险系数

    历届试题 危险系数 时间限制:1.0s 内存限制:256.0MB问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用.地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后 ...

  2. Java实现 蓝桥杯 历届试题 危险系数

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

  3. 蓝桥杯c语言试题幸运数,蓝桥杯  历届试题 幸运数  dfs

    时间限制:1.0s   内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...

  4. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

  5. [蓝桥杯][历届试题]国王的烦恼(反向+并查集)

    问题 1435: [蓝桥杯][历届试题]国王的烦恼 时间限制: 1Sec 内存限制: 128MB 提交: 802 解决: 213 题目描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了 ...

  6. 蓝桥杯 - 历届试题 - 日期问题

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_33531813/article/details/79516258 </div>&l ...

  7. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  8. 二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题

    二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化. #include&l ...

  9. 历届试题+九宫重排+java_蓝桥杯 历届试题 九宫重排 (bfs+康托展开去重优化)...

    Description 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的 ...

最新文章

  1. linux内核的进程管理,Linux内核设计与实现——进程管理
  2. LeetCode---------Longest Substring Without Repeating Characters解法
  3. matlab中并行用不了,请教matlab在linux下的并行问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...
  4. nameof() 到底是编译时还是运行时行为?
  5. mysql 存储过程临时表_在MySQL存储过程中创建的临时表的范围
  6. CentOS和AIX查看系统序列号
  7. IEnumerable和IEnumerator
  8. xp系统计算机不休眠设置,xp和win7系统怎么设置电脑不休眠详细教程
  9. Spring boot 开发 GA/T1400 协议之注册、保活、注销、校时功能
  10. 超火动态表白H5源码
  11. WP-CONTENT/UPLOADS的777,775,744,644,444文件权限设置
  12. 微信“看一看”,“搜一搜”算法大揭秘
  13. 街霸5服务器链接已中断,《街头霸王5》常见问题解决方法
  14. 猿圈 题库_百度传课携手猿圈 接入题库及测评服务
  15. 讨论:报表的未来在哪里?
  16. 50个热门语义分割数据集免费、高速下载资源分享,涵盖通用视觉、遥感、自动驾驶、医疗等多种场景题
  17. 神经网络训练样本制作_VOC格式_FOR_YOLO(Darknet)_AND_PVANet(FasterRCNN)
  18. 【React+TS】从零开始搭建react+typescript+router+redux+less+pxToVw自适应+sass+axios反向代理+别名@+Antd-mobile
  19. 微信小程序6位验证码功能实现
  20. 星空主题设计理念_星空?这样才有的空间感设计

热门文章

  1. CoolShell-第8题
  2. 小卷积核代替大卷积核原理
  3. 笔记本保养的一些误区你要注意了
  4. 大工《模拟电子线路实验》大作业离线作业
  5. 设置VirtualBox共享文件夹的方法
  6. K210学习记录(2)——UART(串口)
  7. 放大镜-第12届蓝桥杯Scratch选拔赛真题精选
  8. 只要有心,处处皆美景——南京清晨
  9. c语言的erase函数,C++ STL标准库中sort,erase,remove_if函数的使用
  10. 【转】所有DNS服务器一览表