算法(十四)通信网络
来源:互联网 发布:电脑查淘宝注册时间 编辑:程序博客网 时间:2024/06/05 07:41
题目描述
问题描述
某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息。信息可以通过中转的方式进行传递,即如果a能将信息传递到b,b又能将信息传递到c,则a能将信息传递到c。一条信息可能通过多次中转最终到达目的地。
上图中给了一个4个部门的例子,图中的单向边表示通路。部门1可以将消息发送给所有部门,部门4可以接收所有部门的消息,所以部门1和部门4知道所有其他部门的存在。部门2和部门3之间没有任何方式可以发送消息,所以部门2和部门3互相不知道彼此的存在。
现在请问,有多少个部门知道所有N个部门的存在。或者说,有多少个部门所知道的部门数量(包括自己)正好是N。
输入格式
输入的第一行包含两个整数N, M,分别表示部门的数量和单向通路的数量。所有部门从1到N标号。
接下来M行,每行两个整数a, b,表示部门a到部门b有一条单向通路。
输出格式
输出一行,包含一个整数,表示答案。
样例输入
4 4 1 2 1 3 2 4 3 4
样例输出
2
样例说明
部门1和部门4知道所有其他部门的存在。
评测用例规模与约定
对于30%的评测用例,1 ≤ N ≤ 10,1 ≤ M ≤ 20;
对于60%的评测用例,1 ≤ N ≤ 100,1 ≤ M ≤ 1000;
对于100%的评测用例,1 ≤ N ≤ 1000,1 ≤ M ≤ 10000。
题目解析:
声明一个矩阵用来存储两点之间是否连通的信息。对图上的每一个节点进行遍历,每次遍历都要把出发节点传递进去,遍历的结果是此节点能连通的所有节点,将对应信息存储进矩阵中去。最后遍历矩阵得出结果,代码如下:
#include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<vector> using namespace std;int flag[1005][1005];int vis[1005];vector<int>V[1005];//t表示的是根源节点。void dfs(int a, int t){ vis[a] = 1; flag[a][t] = flag[t][a] = 1; for (int i = 0; i<V[a].size(); i++) { if (!vis[V[a][i]])//已经遍历过的点就不要再遍历了 { dfs(V[a][i], t); } } return;}int main(){ int n, m; scanf("%d%d", &n, &m); memset(flag, 0, sizeof(flag)); for (int i = 0; i <= n; i++)V[i].clear(); int a, b; for (int i = 1; i <= m; i++) { scanf("%d%d", &a, &b); V[a].push_back(b); } for (int i = 1; i <= n; i++) { //每次从一个节点出发遍历结束后要清空此标记数组的信息。 memset(vis, 0, sizeof(vis)); dfs(i, i); } int i, j, ans = 0; for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { if (!flag[i][j] || !flag[j][i]) break; } if (j == n + 1)ans++; } printf("%d\n", ans);}
- 算法(十四)通信网络
- 【第二十四课】网络---UDP方式的网络通信示例
- 【第二十四课】网络---TCP方式的网络通信示例
- (孙鑫 十四) 网络编程
- python(十四)网络编程
- 算法十四
- 前景检测算法(十四)--SuBSENSE算法
- AgoBot 僵尸网络研究笔记(十四)
- 算法精解十四(C语言版)
- 算法精解二十四(C语言版)
- 算法学习(十四)最大公约数问题
- 数据结构与算法(十四)红黑树
- Java经典算法40例(十四)
- STL(二十四)数值算法
- 网络通信(1)
- 网络通信(待定)
- 操作系统(十四)------进程间通信的几种方式
- 通信算法之十四:GMSK调制与解调仿真链路,DSP软件无线电实现
- [linux]与书上不同的奇怪问题,关于变量赋值部分
- flask项目部署及管理实战
- 在Linux下实现进度条程序
- 属性绑定的innerHTML和直接纯js的innnerHTML区别
- maven仓库安装和配置
- 算法(十四)通信网络
- git使用教程,命令教程
- 目标检测
- Harris角点检测算法详解
- 2D动态天空
- python flask唯一URL规则
- 下议白今都于思数层严白结万
- eclipse下生成公共lib库
- 关于极光IM设置昵称不生效的解决办法