博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 1236 Network of Schools —— (缩点的应用)
阅读量:6249 次
发布时间:2019-06-22

本文共 976 字,大约阅读时间需要 3 分钟。

  题目大意:有N个学校和一些有向边将它们连结,求:

    1.最少需要向几个学校发放软件,使得他们中的每一个学校最终都能够获得软件。

    2.最少需要增加几条有向边使得可以从任意一个学校发放软件,使得每一个学校最终都能够获得软件。

  分析:

    1.缩点以后,找出入度为0的点的个数即可(因为没人可以给他们软件)。

    2.缩点以后,答案即是max(入度为0的点,出度为0的点)。因为只要另每一对入度为0和出度为0的点相连接即可。

  第二个问题也有无向图的版本,那样的话处理方法是:缩点以后,找出那些度为1的点,个数为cnt,向上整除2即可(即答案为(cnt+1)/2)。

  代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int N = 100+5; 9 10 stack
S; 11 int scc_cnt; //强连通分量的个数 12 int dfs_clock; //访问到该节点的时间戳 13 int belong[N]; //belong[i]表示i节点所属于第几个强连通分量 14 int dfn[N]; //表示第i个节点被访问的时间 15 int low[N]; //表示第i个节点的子节点所能访问到的最小的dfn值 16 vector
G[N]; 17 int in[100+5],out[100+5]; 18 19 void dfs(int u) 20 { 21 dfn[u] = low[u] = ++dfs_clock; 22 S.push(u); 23 for(int i=0;i

 

转载于:https://www.cnblogs.com/zzyDS/p/5627639.html

你可能感兴趣的文章
testlink+vertrigoserv搭载测试管理系统
查看>>
6. ZigZag Conversion
查看>>
httpd常用访问控制配置,常见request响应码以及MPM模型简介
查看>>
Linux IO模式及 select、poll、epoll详解
查看>>
ios 前端bug
查看>>
四十、Apache和PHP结合、Apache默认虚拟主机
查看>>
Git命令集十二——分支合并
查看>>
进程管理利器Supervisor--入门简介
查看>>
Confluence 6 安装 SQL Server
查看>>
C++介绍与入门学习
查看>>
Confluence 6 升级中的一些常见问题
查看>>
计算机网络概述上
查看>>
Graylog联动与Ossec实现安全日志分析
查看>>
log springboot 日志
查看>>
语音压缩编码——脉冲编码调制
查看>>
月薪80k阿里架构师:给迷茫的JAVA一些中肯建议(附学习路线图)
查看>>
近几年,出现的技术热点有哪些?
查看>>
求人不如求己,MySql常见问题解析
查看>>
批处理-映射磁盘驱动
查看>>
理解 QEMU/KVM 和 Ceph(1):QEMU-KVM 和 Ceph RBD 的 缓存机制总结
查看>>