问题描述
抗日战争时期,冀中平原的地道战曾发挥重要作用。 地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。 我们来定义一个危险系数DF(x,y): 对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y)就表示为这两点之间的关键点个数。 本题的任务是:已知网络结构,求两站点之间的危险系数。 输入格式
输入数据第一行包含2个整数n( <= n <= ), m( <= m <= ),分别代表站点数,通道数; 接下来m行,每行两个整数 u,v ( <= u, v <= n; u != v)代表一条通道; 最后1行,两个数u,v,代表询问两点之间的危险系数DF(u, v)。 输出格式
一个整数,如果询问的两点不连通则输出-.
样例输入 样例输出

题目描述

代码如下:

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max_ 3000 typedef struct node node_t;
typedef struct node
{
int n; //下一个站点
node_t *next;
}node; int n,m,u,v,res;
int vis[Max_]; //标记站点是否被访问
int walk[Max_]; //记录单次行走路径的站点
int use[Max_]; //标记成功路径下的站点次数
node *e[Max_]; //邻接表,记录各站点之间的联系 void add_edge(int x,int y)//添加两站点之间的边
{
node *p;
p = (node*)malloc(sizeof(node));
p->n = y;
p->next = e[x];
e[x] = p;
return ;
} void init()//初始化
{
int i,x,y; memset(vis,,sizeof(vis));
memset(walk,,sizeof(walk));
memset(use,,sizeof(use));
for (i= ; i<=n ; i++)
e[i] = NULL; scanf("%d%d",&n,&m); //站点,通道数 for (i= ; i<m ; i++)
{
scanf("%d%d",&x,&y);
add_edge(x,y); //无向图,双向
add_edge(y,x);
}
scanf("%d%d",&u,&v); //起点,终点 return ;
} void DF(int x,int step)
{
node *p = e[x];
walk[step] = x; //记录当前路径的站点 if (x == v)
{
res ++; //成功路径的次数+1
for (x= ; x<step ; x++)
use[walk[x]]++; //标记成功路径下的站点
return ;
} while (p != NULL)
{
if (vis[p->n] == )//下一个站点未被访问
{
vis[p->n] = ;
DF(p->n,step+);
vis[p->n] = ;
}
p = p->next;//查找当前与站点连接的下一个站点
} return ;
} int main(void)
{
int i,k;
init();
k = res = ; vis[u] = ; //标记起点访问
DF(u,); for (i= ; i<=n ; i++)
if (use[i]==res)//站点标记数,与成功路径数相同,即为u与v的关键点
k ++; printf("%d",k-);
return ;
}

C解法

错误:理解为寻找最短路径,实际是寻找能被多次抵达终点的站点数(与成功抵达终点的次数相同)

解题思路:

建立站点之间联系,遍历能够抵达终点的路径,并对成功路径上的站点做次数+1

当遍历完成后,查找与成功次数相同的站点(即该站点与抵达终点有必然关系)

[蓝桥杯]PREV-12.历届试题_危险系数的更多相关文章

  1. 蓝桥杯练习系统历届试题 剪格子 dfs

    问题描述 如下图所示,3 x 3 的格子中填写了一些整数. +--*--+--+|10* 1|52|+--****--+|20|30* 1|*******--+| 1| 2| 3|+--+--+--+ ...

  2. 蓝桥杯练习系统历届试题 带分数 dfs

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

  3. 【蓝桥杯单片机12】实时时钟DS1302的基本操作

    [蓝桥杯单片机12]实时时钟DS1302的基本操作 广东职业技术学院 欧浩源 实时时钟DS1302几乎是蓝桥杯“单片机设计与开发”每年必考的内容,虽然在竞赛现场有提供一个底层读写寄存器的库文件,但是作 ...

  4. [蓝桥杯]PREV-22.历届试题_国王的烦恼

    问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲刷,有一些大桥面临着不能使用的危险. 如果两个小岛间 ...

  5. [蓝桥杯]PREV-44.历届试题_青蛙跳杯子

    问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色. X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去. 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙 ...

  6. [蓝桥杯]PREV-10.历届试题_幸运数

    问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的“筛法”生成 . 首先从1开始写出自然数1,,,,,,.... 就是第一个幸运数. 我们从2这个数开始.把所有序号能被2整除的项删除,变 ...

  7. [蓝桥杯]PREV-27.历届试题_蚂蚁感冒

    问题描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂 ...

  8. [蓝桥杯]PREV-26.历届试题_最大子阵

    问题描述 给定一个n*m的矩阵A,求A中的一个非空子矩阵,使这个子矩阵中的元素和最大. 其中,A的子矩阵指在A中行和列均连续的一块. 输入格式 输入的第一行包含两个整数n, m,分别表示矩阵A的行数和 ...

  9. [蓝桥杯]PREV-25.历届试题_城市建设

    问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修.市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他. C市中有n个比较重要的地点,市长希望这些地点重点被考虑.现在 ...

随机推荐

  1. sql server存储过程,常用的格式

    BEGINSET NOCOUNT ON;if @_MODE NOT IN ('A','M','D') begin raiserror('参数错误!',16,3); return; end; decla ...

  2. 家庭版Windows10没有远程桌面的问题

    https://github.com/stascorp/rdpwrap/releases

  3. 1个多商户、多平台版 微信小程序(多商户、多平台版),影城行业、影业连锁 多商户、多平台版微信小程序。(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本)

    1个 影城行业 微信小程序(多商户.多平台版), 影业连锁 多商户.多平台版微信小程序.(基于多平台版,支持在业务上 可给 每个单独影城 分发定制单独的小程序版本) 资讯QQ: 876635409  ...

  4. 最近的AI

    虚拟币和AI  两个大类怎么兴起?

  5. 西门子SCL读写DB数据

    数据块间接寻址方式,仅供参考. STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变WNO ...

  6. 30天代码day1Data Types

    Primitive Data Types Java has 8 primitive data types: byte, short, int, long, float, double, boolean ...

  7. vue+axios跨域解决方法

    通过这种方法也可以解决跨域的问题. 使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建) 例如请求的url:“http://f.apiplus.cn/bj11x ...

  8. 简述osi七层模型和TCP/IP五层模型

    OSI七层模型 OSI七层模型的划分 应用层(Application).表示层(presentation).会话层(session).传输层(Transport).网络层(Network).数据链路层 ...

  9. qt+opencv 构建项目时报错——no such file or directory

    构建前,记得,一定一定一定要先点击执行qmake:

  10. JQ方法实用案例///鼠标移动到div和修改ipt中弹窗、CSS鼠标变小手、JQ获取元素属性、JQ选择器

    今天学习了jQ,jQ对js的帮助很大,菜鸟教程上也有属性.可以查看 js 和 jquery主要的区别 在 dom    想用jquery  必须先引入(顺序问题)        先css 再js:   ...