COGS8 备用交换机

备用交换机

★★   输入文件:gd.in   输出文件:gd.out   简单对比
时间限制:1 s   内存限制:128 MB

【问题描述】

n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接。因电子设备容易损坏,需给通讯点配备备用交换机。但备用交换机数量有限,不能全部配备,只能给部分重要城市配置。于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机。请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号。

【输入格式】

输入文件有若干行
第一行,一个整数n,表示共有n个城市(2<=n<=100)
下面有若干行,每行2个数a、b,a、b是城市编号,表示a与b之间有直接通讯线路。

【输出格式】

输出文件有若干行
第一行,1个整数m,表示需m个备用交换机,下面有m行,每行有一个整数,表示需配备交换机的城市编号,输出顺序按编号由小到大。如果没有城市需配备备用交换机则输出0。

【输入输出样例】

输入文件名: gd.in

7

1 2

2 3

2 4

3 4

4 5

4 6

4 7

5 6

6 7

输出文件名:gd.out

2

2

4

割点

注意读入道路数量不等于n

 1 /*by SilverN*/
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 #include<vector>
 8 using namespace std;
 9 const int mxn=20000;
10 const int mxm=120;
11 vector<int>e[mxn];
12 int gd[mxm];
13 int n;
14 int root,dtime=0;
15 int dfn[mxm],low[mxm];
16 int ans=0;
17
18 void add_edge(int u,int v){
19     e[u].push_back(v);
20     e[v].push_back(u);
21     return;
22 }
23 void tarjan(int u){
24     int i;
25     int tot=0;
26     low[u]=dfn[u]=++dtime;
27     int v;
28     for(i=0;i<e[u].size();i++){
29         v=e[u][i];
30         if(!dfn[v]){
31             tarjan(v);
32             ++tot;
33             low[u]=min(low[v],low[u]);
34             if((u==root && tot>1)||(u!=root && low[v]>=dfn[u]))
35                 if(!gd[u]) gd[u]=true,ans++;
36         }
37         else low[u]=min(low[u],dfn[v]);
38     }
39     return;
40 }
41 int main(){
42     freopen("gd.in","r",stdin);
43     freopen("gd.out","w",stdout);
44     scanf("%d",&n);
45     int i,j;
46     int a,b;
47     while(scanf("%d%d",&a,&b)!=EOF)
48         add_edge(a,b);
49     for(i=1;i<=n;i++){
50         if(!dfn[i]){
51             root=i;
52             tarjan(i);
53         }
54     }
55     printf("%d\n",ans);
56     for(i=1;i<=n;i++){
57         if(gd[i])printf("%d\n",i);
58     }
59     return 0;
60 }
时间: 2024-10-12 13:47:13

COGS8 备用交换机的相关文章

COGS——T 8. 备用交换机

http://www.cogs.pro/cogs/problem/problem.php?pid=8 ★★   输入文件:gd.in   输出文件:gd.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配

COGS 8. 备用交换机

8. 备用交换机 [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机.请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号. [输入格式] 输入文件有若干行第一行,一个整数n,表示共有n个城市(2<=n<=100)下面有若干行

备用交换机(cogs 8)

[问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机.请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号. [输入格式] 输入文件有若干行第一行,一个整数n,表示共有n个城市(2<=n<=100)下面有若干行,每行2个数a.b

备用交换机

[题目描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接. 因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机. 请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号. [输入描述] 第一行,一个整数n,表示共有n个城市(2 <= n <= 100): 下面有若干行,每行2个数a.b

图的割点 | | jzoj【P1230】 | | gdoi | |备用交换机

写在前面:我真的不知道图的割点是什么.... 看见ftp图论专题里面有个dfnlow的一个文档,于是怀着好奇的心情打开了这个罪恶的word文档,,然后就开始漫长的P1230的征讨战.... 图的割点是这样的: path1=暴力 枚举每一个点,如果去掉这个点就可以使图断开,那么这个点就是割点(时间复杂度O(N(N+M))) path2=tarjan 从任意一个点开始遍历,记录遍历的顺序,然后对正在遍历的点进行一次深度优先遍历,但是此次遍历不允许经过这个点,看看还能不能回到前一个点 这时候我们就可以

P1230 备用交换机

From easthong☆备用交换机 描述 Description n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用 交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备 用交换机.请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号. 输入格式 Input Format 第一行,一个整数n,表示

EX4200交换机的VC配置

VC故名思义就是:virtual-chassis 虚拟机箱的意思.我们要明白为什么要这么用?用这个方法有什么好处.我们知道,一台交换机后面有两个VCP端口,每个端口提供32Gbps背板带宽,如果我们将这两个端口与另一台交换机的VCP端口连接起来,是不是就增加带宽了,为64Gbps了.这是一点很明显的好处,处理数据的能力及转发状态更加行之有效了,同时这样的好处就是两台可视为一台处理了,而且互作冷备.主路由引擎上的核心信息和转发状态都会复制一份给备机,不会出现网络中断情况,几乎在瞬间完成.下面我来详

COGS 08-备用交换机 题解——S.B.S.

8. 备用交换机 ★★   输入文件:gd.in   输出文件:gd.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机.请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换

tarjan算法求割点cojs 8

tarjan求割点:cojs 8. 备用交换机 ★★   输入文件:gd.in   输出文件:gd.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接.因电子设备容易损坏,需给通讯点配备备用交换机.但备用交换机数量有限,不能全部配备,只能给部分重要城市配置.于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机.请你根据城市线路情况,计算需配备备用交换