poj1144-程序员宅基地

http://poj.org/problem?id=1144

求图中割点数目,只是输入处理比较麻烦,由于不知道有多长,所以需要字符输入然后转换成数字

 1 #include <stdio.h>
2 #include <string.h>
3 #define SIZE 101
4 #define MIN(a,b) ((a)<(b)?(a):(b))
5 bool map[SIZE][SIZE],cut[SIZE];
6 int num,cnt,count,k,dfn[SIZE],low[SIZE];
7 const int root=1;
8 char line[5*SIZE];
9 void init()
10 {
11 memset(dfn,0,sizeof(dfn));
12 memset(low,0,sizeof(low));
13 memset(map,false,sizeof(map));
14 memset(cut,false,sizeof(cut));
15 memset(line,'\0',sizeof(line));
16 }
17 void bulid() //构图
18 {
19 int i=0,from=0,to=0;
20 while(line[i]>='0'&&line[i]<='9')
21 from=from*10+line[i++]-'0';
22 do
23 {
24 ++i;
25 to=0;
26 while(line[i]>='0'&&line[i]<='9')
27 to=to*10+line[i++]-'0';
28 map[from][to]=map[to][from]=true;
29 }while(line[i]!='\0');
30 }
31 void tarjan(int key)
32 {
33 dfn[key]=low[key]=++cnt;
34 for(int i=1;i<=num;++i)
35 if(map[key][i])
36 if(!dfn[i])
37 {
38 tarjan(i);
39 if(key==root&&!count)
40 {
41 ++count;
42 continue;
43 } //特判根节点是否是割点
44 if(dfn[key]<=low[i])
45 cut[key]=true;
46 else
47 low[key]=MIN(low[key],low[i]);
48 }
49 else
50 low[key]=MIN(low[key],dfn[i]);
51 }
52 int main()
53 {
54 while(gets(line)&&line[0]!='0')
55 {
56 sscanf(line,"%d",&num);
57 while(gets(line)&&line[0]!='0')
58 bulid();
59 cnt=count=k=0;
60 tarjan(root);
61 for(int i=1;i<=num;++i)
62 if(cut[i])
63 ++k;
64 printf("%d\n",k);
65 init();
66 }
67 return 0;
68 }

  

转载于:https://www.cnblogs.com/mengxm-lincf/archive/2011/09/16/2178185.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30949361/article/details/97979788

智能推荐

MATLAB函数解析:colormap——查看并设置当前颜色图_colormap函数-程序员宅基地

文章浏览阅读8.8k次,点赞13次,收藏26次。MATLAB函数解析:colormap语法说明示例更改图窗的颜色图将颜色图设置回默认值对图窗中的每个坐标区使用不同的颜色图指定颜色图的颜色数创建自定义颜色图返回用在绘图中的颜色图值返回特定坐标区的颜色图值将图窗的颜色图更改为图像输入参数map - 新颜色方案的颜色图颜色图名称三列矩阵target - 目标输出参数资源传送门「️ 感谢大家」语法colormap mapcolormap(map)colormap(target,map)cmap = colormapcmap = colormap(t_colormap函数

数据结构---第五章树与二叉树---树与二叉树的应用---选择题_查找关键字为363-程序员宅基地

文章浏览阅读869次。数据结构---第五章树与二叉树---树与二叉树的应用---选择题_查找关键字为363

语义向量模型for检索_语义向量检索-程序员宅基地

文章浏览阅读174次。文本检索的场景需要用到的embedding方法学习与整理_语义向量检索

python去年软件排行第几_2018年上半年热门编程语言排行榜出炉,Python笑了-程序员宅基地

文章浏览阅读172次。转眼2018年已过大半,曾经定下的目标,也许有的已经完成,有的还在努力中,在努力过程中你会更加明白自己想要的是什么,明确未来应该如何规划,选择一条适合自己的道路。对于程序员来说,选择一门适合自己,适合职业发展的编程语言也是同等重要。近日关于2018十大上半年最热门编程语言排行榜新鲜出炉。各大编程语言的受欢迎程度、学习的人群数量,以及由于人工智能的兴起,最热门的编程语言排行榜也发生了变化。让我们来看..._2018年python排名

【shell系列】之查看shell脚本的执行过程和makefile中调试手段_sh 加什么参数,看脚本执行的细节-程序员宅基地

文章浏览阅读3.8k次。Date: 2018.10.16前言    在编写shell脚本或者makefile脚本时,运行成功往往需要经过一番调试,定位问题所在需要一些调试方法,本文旨在讲述makefile脚本或者shell脚本中的几种调试方法。_sh 加什么参数,看脚本执行的细节

【Vue.js】之过滤器和利用过滤器实现新闻列表_vue中使用filter过滤器,截取新闻标题-程序员宅基地

文章浏览阅读285次。过滤器 过滤器(对模板中显示的数据进行处理,然后返回一个新的数据)声明全局注册 不推荐 Vue.filter(name, function) 必须在new Vue()的前面声明局部注册new Vue({ ... filters: { 过滤器的名称 (value) {} }})只作用于定义的实例内部模板中使用: 1. 没有参数的过滤器 <p>{{数据 | 过滤器1的名称 | 过滤器2的名称 ...}}</p> <_vue中使用filter过滤器,截取新闻标题

随便推点

Cortex-M内核知识点总结_cortex内核-程序员宅基地

文章浏览阅读714次,点赞2次,收藏11次。我们使用外部中断的高电平触发方式来解释中断的过程 , 如上图中断请求表示外部输入引脚高电平持续的时间 ,内核检测到中断请求后,将悬起对应的中断(中断标志置位) , 中断悬起后,可能不是立马执行服务程序 , 比如当前在临界区,退出临界区后,处理器模式切换成Handler 模式,并开始执行中断服务程序,清除中断标志,执行完成后 ,退出服务,处理器模式切换成线程模式。sp我们知道是栈指针 , 每次使用 push 指令,sp都将自动生长(减小,栈是向低地址方向生长),每次使用pop指令时,sp都将增大。_cortex内核

即构SDK新增变声、立体声(3D环绕)、混响三大功能_fmod 低音-程序员宅基地

文章浏览阅读2.1k次。近日,即构SDK完成了新的迭代,新增变声、立体声(3D环绕)、混响三大功能,让玩家能体验到更多新鲜的玩法。 第一,变声功能现在流行的吃鸡游戏中,萌妹子开语音玩,只要稍微撒个娇,就能收获队友送来的福利,如果是壮汉,就没这个待遇了。有些壮汉就想了各种办法,比如另外安装一个变声软件,伪装成萌妹子。如果游戏自带变声功能,是不是就不用这么麻烦? 又比如,在语聊房、私聊、在线K歌、连麦直播..._fmod 低音

【学习心得】图解Git命令-程序员宅基地

文章浏览阅读919次,点赞15次,收藏28次。【学习心得】图解Git命令

/usr/bin/ld: 找不到 can‘t find -xxx++-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏8次。ld是一个链接器文件,后面报错一般都是什么库找不到,so文件。一般都会在lib64下面找到,注意后面带版本号的是实际文件。_/usr/bin/ld: 找不到

QT添加python解释环境_qt python开发环境-程序员宅基地

文章浏览阅读664次,点赞2次,收藏4次。qt creator添加python解释器,实现再qt中能运行python脚本_qt python开发环境

linux下的MySQL主从数据库的搭建_linux系统mysql8.0.33通过xbk备份搭建主从复制-程序员宅基地

文章浏览阅读99次。linux下的MySQL主从数据库的搭建_linux系统mysql8.0.33通过xbk备份搭建主从复制

推荐文章

热门文章

相关标签