ccf 2017-09-04 通信网络 图的遍历
来源:互联网 发布:淘宝情侣装店铺排名 编辑:程序博客网 时间:2024/06/05 17:23
中文题意,不在重复。
开始时用的传递闭包思想,三层循环,结果给了35分,超时了。
后来,看了别人的代码,发现暴力搜图就可以了。
我们只需遍历n个点(发现n才1000。。。),每次都将此时的节点当做起点,然后开始查询通过此点能到达的所有点。
代码:
#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];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);}
阅读全文
0 0
- ccf 2017-09-04 通信网络 图的遍历
- ccf 201709-4 通信网络 BFS遍历
- CCF认证2017-09 通信网络
- [解答]CCF-通信网络-2017
- ccf-2017094-通信网络
- CCF 通信网络
- 201709-4 通信网络 ccf
- CCF 201709-4 通信网络
- CCF 201709-4 通信网络
- CCF 201709-4 通信网络
- CCF 201709-4 通信网络 Java
- ccf 通信问题 连通图
- CCF-CSP 通信网络 JAVA 201709-4 100分
- CCF考试——201709-4通信网络
- [CCF CSP201709-4通信网络]缩点+拓扑+bitset
- CCF CSP 网络延时 树的直径
- CCF 网络延时 树的直径
- 多线程的网络通信
- 如何整理知识体系
- windows10+GeForce940M+cuda8.0+Anaconda3.4.2.0 + tensorflow-gpu(0.12.0rcl)安装教程
- spring-tools:在STS中安装部署Spring Roo2.0.RELEASE
- 底部快速butto
- JavaScript学习资料二
- ccf 2017-09-04 通信网络 图的遍历
- 关于获取学生最高成绩的查找
- mybatis笔记-基本认识
- Linkit ONE开发板实验05-SD卡存储GPS数据
- strcmp()比对返回值不符
- LeetCode Combination Sum II
- day31
- WPF中,定时系统重启功能的实现
- 梯度下降法