uva 247 calling circles
来源:互联网 发布:linux 给其他用户授权 编辑:程序博客网 时间:2024/05/21 21:43
图的连通性问题。两个人相互连通当且仅当两人互相直接或者间接打过电话。
因为间接通话的存在,无法直接用dfs来求连通块。要用Floyd算法实现的传递闭包
来预处理两人是否直接或间接的通过话。Floyd算法完后则可以用dfs求出所有连通块了。
// Created by Chenhongwei in 2015.// Copyright (c) 2015 Chenhongwei. All rights reserved.#include"iostream"#include"cstdio"#include"cstdlib"#include"cstring"#include"climits"#include"queue"#include"cmath"#include"map"#include"set"#include"stack"#include"vector"#include"sstream"#include"algorithm"using namespace std;typedef long long ll;vector<string > name;int n,m,vis[30],d[30][30];int ID(const string& s){for(int i=0;i<name.size();i++)if(name[i]==s) return i;name.push_back(s);return name.size()-1;}void dfs(int u){vis[u]=1;for(int v=0;v<n;v++)if(!vis[v]&&d[u][v]&&d[v][u]){cout<<", "<<name[v];dfs(v);}}int main(){ios::sync_with_stdio(false);// freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);int kase=0;string s,t;while(cin>>n>>m&&n+m){if(kase)cout<<endl;cout<<"Calling circles for data set "<<++kase<<":\n";name.clear();memset(vis,0,sizeof vis);memset(d,0,sizeof d);for(int i=1;i<30;i++)d[i][i]=1;while(m--){cin>>s>>t;d[ID(s)][ID(t)]=1;}for(int k=0;k<n;k++)for(int i=0;i<n;i++)for(int j=0;j<n;j++)d[i][j]|=d[i][k]&&d[k][j];for(int i=0;i<n;i++)if(!vis[i]){cout<<name[i];dfs(i);cout<<endl;}}return 0;}
0 0
- UVa 247 Calling Circles
- UVA 247 Calling Circles
- uva 247 calling circles
- UVa 247 Calling Circles
- UVa 247 - Calling Circles
- UVA 247 Calling Circles
- UVA 247(p365)----Calling Circles
- UVa #247 Calling Circles (例题11-4)
- UVa - 247 Calling Circles(Floyd - TC)
- UVA - 247 - Calling Circles(floyd算法)
- uva 274 Calling Circles
- Calling Circles UVA
- Calling Circles UVA
- UVA 247 - Calling Circles(tarjan 强连通算法)
- UVA 247 - Calling Circles(floyd 传递背包)
- uva 247 Calling Circles(Floyd 的简单应用)
- uva 247 Calling Circles(fioyd传递闭包和DFS)
- [UVA 247]Calling Circles[传递闭包][floyd]
- C#:制作服务控制器
- 工作笔记7
- MySQL添加用户、删除用户与授权
- Chrome下cookie无法使用
- [CSS] 去掉a标签超链接的虚线框,禁止浏览器默认input样式
- uva 247 calling circles
- su -认证失败
- css3实现动画横幅
- Jexus Web Server完整 图文两种形式配置教程
- 黑马程序员--UDP通信
- UVA 12931 Common Area
- 二分图多重匹配问题
- layout
- Android ViewPager多页面滑动切换以及动画效果