给出n个人和m次通话, 如果两个人(间接或直接)通话,那么则称这两人在一个电话圈中,求出所有电话圈.
思路:在有向图中,如果我们不关心路径长度,思考任意两点间是否有通路,则将边权1代表通路,0代表没有路.
d[i][j]=d[i][j]||(d[i][k]&&d[k][j]) 这样就求出任意两点间是否有通路。这个结果称为有向图的传递闭包.
实现: 读入的名字用取ID函数给一个ID作为起点,然后有路就是边权1,没有就是0,自己到自己边权是1.
代码;别忘了vector输出字符串要用那个name[i].c_str()
#include
#include
#include
#include
#include
#define INF 999
using namespace std;
vector names; int n,m;int g[26][26];int vis[26];
int ID(const string &s){
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?