您当前的位置: 首页 > 

minato_yukina

暂无认证

  • 1浏览

    0关注

    138博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

例题11-4 电话圈

minato_yukina 发布时间:2020-12-04 15:59:17 ,浏览量:1

给出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            
关注
打赏
1663570241
查看更多评论
0.0386s