热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

试题历届试题危险系数

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

 


资源限制
时间限制:1.0s   内存限制:256.0MB
 
问题描述

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

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

我们来定义一个危险系数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 <= u, v <= n,所以令要排除测试的点为0即可判断),若连通,则一个个点做排除测试,若排除该点后可行路径数为0,那么说明这是一个关键点,危险系数df加一. 注意剪枝,一旦发现该点不是关键点,就直接终止测试.
 

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #define INF 0x3f3f3f3f
10 #define zero 1e-7
11
12 using namespace std;
13 typedef long long ll;
14 const ll mod=1e9+7;
15 const ll max_n=1005;
16
17 struct node {
18 int u, v;
19 }e[max_n<<1];
20
21 int n, m;//站点数,通道数
22 int su, sv;//询问的两点
23 int ans=0;//排除某点后可行的路径数
24 bool vis[max_n]={false};//标记是否访问过
25 bool flag[max_n]={false};//标记改点是否排除测试过
26
27 void dfs(int s, int del) {//源点,要排除测试的点
28 vis[s]=true;
29 for(int i=0; i30 if(e[i].u==s && !vis[e[i].v] && e[i].v!=del) {
31 if(e[i].v==sv)
32 ans++;
33 else
34 dfs(e[i].v, del);
35 }
36 if(e[i].v==s && !vis[e[i].u] && e[i].u!=del) {
37 if(e[i].u==sv)
38 ans++;
39 else
40 dfs(e[i].u, del);
41 }
42 if(ans) return;//一旦找到排除点del后仍能使询问的两点连通的路径,即del不是关键点,则直接终止测试
43 }
44 vis[s]=false;
45 }
46
47 int main() {
48 cin>>n>>m;
49 int df=0;
50 for(int i=0; i51 cin>>e[i].u>>e[i].v;
52 }
53 cin>>su>>sv;
54 dfs(su, 0);//先判断不排除任何点时,询问的两点是否连通
55 if(!ans) df=-1;//若询问的两点不连通则令df=-1
56 else {
57 for(int i=1; i<=n; i++) {
58 ans=0;
59 if(i!=su && i!=sv && !flag[i]) {
60 flag[i]=true;
61 memset(vis, false, sizeof vis);//注意要重新初始化
62 dfs(su, i);
63 if(!ans) df++;
64 }
65 }
66 }
67 cout<68 return 0;
69 }
70 /*
71 5 4
72 1 3
73 2 3
74 1 4
75 4 5
76 2 5
77
78 3
79 */
 

推荐阅读
author-avatar
黄宗翰琼琦莉雯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有