LOJ10102旅游航道
题目描述
SGOI 旅游局在 SG-III 星团开设了旅游业务,每天有数以万计的地球人来这里观光,包括联合国秘书长,各国总统和 SGOI 总局局长等。旅游线路四通八达,每天都有众多的载客太空飞船在星团的星球之间来往穿梭,他们保证了任意两个星球之间总是可以通过航道到达。
但是,最近由于财政出现了困难,一些太空飞船也过于古老,又没有足够的资金购买新产品,所有只好取消一些航道。如果某一条航道的删除使得一些星球不能到达,那么这条航道是不能删除的,称之为「主要航道」。
SGOI 旅游局局长希望知道主要航道的数目,但是航道较多,他不能手工计算,于是,他委托你写一个程序,计算主要航道数目。
输入格式
输入文件包含若干组数据。
每组数据的首行有两个数 m,n 。星球的编号从 1 到 m 。
以下 n 行每行用两个整数 a,b 描述一条航道的信息,表示从星球 a 到星球 b 是有航道的。数据由 SGOI 旅游局提供,你无需担心数据有错。
输入文件以一行0 0
为结束。
输出格式
输出文件共有 C 行,第 i 行仅有一个数,表示第 i 组输入数据的主要行道数目。
样例
样例输入
2 1
1 2
0 0
样例输出
1
数据范围与提示
_________________________________
求图中桥的数量
_________________________________
1 #include<bits/stdc++.h>
2 using namespace std;
3 const int maxn=3e4+10;
4 struct edge
5 {
6 int u,v,nxt,nok;
7 }e[maxn<<1];
8 int head[maxn],js;
9 void addage(int u,int v)
10 {
11 e[++js].u=u;e[js].v=v;
12 e[js].nxt=head[u];head[u]=js;
13 }
14 int n,m;
15 int dfn[maxn],low[maxn],cnt;
16 inline int dz(int x)
17 {
18 return x&1?x+1:x-1;
19 }
20 int ans;
21 void tarjan(int u)
22 {
23 low[u]=dfn[u]=++cnt;
24 for(int i=head[u];i;i=e[i].nxt)
25 if(!e[i].nok)
26 {
27 int v=e[i].v;
28 e[dz(i)].nok=1;
29 if(!dfn[v])
30 {
31 tarjan(v);
32 low[u]=min(low[u],low[v]);
33 if(low[v]>dfn[u])ans++;
34 }
35 else low[u]=min(low[u],dfn[v]);
36 }
37 }
38 void init()
39 {
40 js=0;
41 memset(head,0,sizeof head);
42 ans=0;
43 memset(low,0,sizeof low);
44 memset(dfn,0,sizeof dfn);
45 memset(e,0,sizeof e);
46 cnt=0;
47 }
48 int main()
49 {
50 while(scanf("%d%d",&n,&m),n|m)
51 {
52 init();
53 for(int u,v,i=0;i<m;++i)
54 {
55 scanf("%d%d",&u,&v);
56 addage(u,v);
57 addage(v,u);
58 }
59 tarjan(1);
60 printf("%d\n",ans);
61 }
62 return 0;
63 }
LOJ10102旅游航道的更多相关文章
- loj10102 旅游航道
传送门 分析 一道喜闻乐见的求桥的板子题. 代码 #include<iostream> #include<cstdio> #include<cstring> #in ...
- bzoj1393 旅游航道
Description SGOI旅游局在SG-III星团开设了旅游业务,每天有数以万计的地球人来这里观光,包括联合国秘书长,各国总统和SGOI总局局长等.旅游线路四通八达,每天都有总躲得载客太空飞船在 ...
- loj题目总览
--DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活 ...
- Tarjan-割点&桥&双连通
$Tarjan$求割点 感觉图论是个好神奇的东西啊,有各种奇奇怪怪的算法,而且非常巧妙. 周末之前说好回来之后进行一下学术交流,于是wzx就教了$Tarjan$,在这里我一定要说: wzx AK ...
- CSU训练分类
√√第一部分 基础算法(#10023 除外) 第 1 章 贪心算法 √√#10000 「一本通 1.1 例 1」活动安排 √√#10001 「一本通 1.1 例 2」种树 √√#10002 「一本通 ...
- LOJ 一本通一句话题解系列:
第一部分 基础算法 第 1 章 贪心算法 1):「一本通 1.1 例 1」活动安排:按照结束时间排序,然后扫一遍就可以了. 2):「一本通 1.1 例 2」种树:首先要尽量的往区间重叠的部分种树,先按 ...
- 旅游公司招聘Java工程师
公司招聘:岗位要求如下 Java开发工程师工作内容1.根据需求完成软件系统代码的开发,测试以及文档撰写工作:2.分析并解决客户的问题:3.配合业务部门进行数据分析以及系统优化 岗位要求:1.本科以上学 ...
- 基于GIS的旅游辐射区人口统计
在旅游规划中,考虑旅游景点周边的人口负载量是很重要的一个方面,这将直接影响资源的投入和配置,开发潜力和规模等.基于GIS可以将人口信息进行空间化的展示,还可以通过空间分析的方法计算出旅游景点辐射区的人 ...
- Java基础-多线程编程-1.随便选择两个城市作为预选旅游目标。实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市。分别用Runnable接口和Thread类实现。
1.随便选择两个城市作为预选旅游目标.实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000ms以内),哪个先显示完毕,就决定去哪个城市.分别用Runnable接口和Thread ...
随机推荐
- Linux课程知识点总结(二)
Linux课程知识点总结(二) 七.Shell实用功能 7.1 命令行自动补全 在Linux系统中,有太多的命令和文件名称需要记忆,使用命令行补全功能[Tab]可以快速的写出文件名和命令名 7.2 命 ...
- [leetcode]54. Spiral Matrix二维数组螺旋取数
import java.util.ArrayList; import java.util.List; /** * Given a matrix of m x n elements (m rows, n ...
- Linux top命令在生产环境的妙用
top linux下的任务管理器 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来 ...
- 神奇的 SQL 之性能优化 → 让 SQL 飞起来
开心一刻 一天,一个男人去未婚妻家玩,晚上临走时下起了大雨 未婚妻劝他留下来过夜,说完便去准备被褥,准备就绪后发现未婚夫不见了 过了好久,全身淋的像只落汤鸡的未婚夫回来了 未婚妻吃惊的问:" ...
- Java进阶基础18天课程大总结
知识点目录 day1:分类思想,static关键字 day2:面向对象-继承,抽象类,权限修饰符,final day3:接口,多态 day4:内部类,Lambda day5:工具类API,系统API, ...
- Promise入门到精通(初级篇)-附代码详细讲解
Promise入门到精通(初级篇)-附代码详细讲解 Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. Pr ...
- [日常填坑系列]CAP食用指南-版本引用问题
一.前言 最近,由于好久没升级底层框架,一直用着netcore2.2版本,导致有些包没能更新到最新的版本,例如:CAP. 然而,在最近升级到CAP:3.1.2版本的时候,发现有点小坑,只能退回到CAP ...
- 从Java的字符串池、常量池理解String的intern()
前言 逛知乎遇到一个刚学Java就会接触的字符串比较问题: 通常,根据"==比较的是地址,equals比较的是值"介个定理就能得到结果.但是String有些特殊,通过new Str ...
- AvaloniaUI体验
公司的原有的PC端WPF产品有跨平台需求,无奈微软自己的xamarin对wpf的支持当前尚未达到能支撑产品的成熟度,于是经过搜索,发现了一个号称用WPF实现跨平台的第三方图形库AvaloniaUI. ...
- 【Oracle】重命名表空间
将表空间重新命名 SQL> alter tablespace 原名 rename to 新名; 在查看下是否命名成功 SQL> select tablespace_name from ...