有向图的多源多点问题,,,
来源:互联网 发布:海森矩阵 编辑:程序博客网 时间:2024/05/21 17:23
#include<iostream>#include<algorithm>#include<cstdio>#define N 1001#define M 111111111using namespace std;int map[N][N];int n;int main(){ while( ~scanf("%d",&n)!=EOF&&n ) { for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) {if(i!=j) map[i][j]=M; else map[i][j]=0; } for(int i=1;i<=n;++i) { int m; ~scanf("%d",&m); if(!m) continue; for(int j=1;j<=m;++j) { int a,b; ~scanf("%d%d",&a,&b); map[i][a]=b;注意此图为单向图。。。 } } for(int k=1;k<=n;++k) for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) if(map[i][k]!=M&&map[k][j]!=M&&map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j]; int minx=M,k=0; for(int i=1;i<=n;++i)分别以每个顶点为源点开始搜索,,,, { int max=0; bool flag=false; for(int j=1;j<=n;++j) { if(map[i][j]==M)判断该路径是不是连通。 { flag=true;break;} if(map[i][j]>max) max=map[i][j]; } if(!flag&&max<minx) minx=max,k=i; } if(!k) printf("disjoint\n"); else printf("%d %d\n",k,minx); }return 0; }
dijstra算法:
#include<iostream>#include<string.h>#define N 1001#define M 99999999#define FOR(i,s,t) for(int i=(s);i<=(t);++i)using namespace std;int n;int map[N][N];int dist[N];bool visit[N];int main(){ while(cin>>n,n) { memset(map,0,sizeof(map)); FOR(i,1,n) { int m; cin>>m; if(!m) continue; FOR(j,1,m) { int a,b; cin>>a>>b; map[i][a]=b; } } int mmin=M,mink; FOR(i,1,n) { int now=i; bool bb=true; FOR(j,1,n) { dist[j]=M; visit[j]=true; } dist[now]=0; visit[now]=false; FOR(k,1,n) { int minx=M; FOR(j,1,n) if(visit[j]&&map[now][j]&&dist[j]>dist[now]+map[now][j]) dist[j]=dist[now]+map[now][j]; FOR(j,1,n) if(visit[j]&&minx>dist[j]) minx=dist[now=j]; visit[now]=false; } int _max=0; FOR(p,1,n) if(dist[p]==M) {bb=false;break;} if(bb) { FOR(p,1,n) if(dist[p]>_max) _max=dist[p]; if(mmin>_max) mmin=_max,mink=i; } } if(mmin<M&&mmin!=0) cout<<mink<<" "<<mmin<<endl; else cout<<"disjoint"<<endl; } return 0; }
- 有向图的多源多点问题,,,
- 有向图的割点问题
- 百度地图多点有向链接
- [回忆向]关于有向和无向图连通性问题的yy证法
- 有向图中顶点的路径问题
- POJ3660—有向图的传递闭包问题
- 有向图的最小费用最大流问题
- 有向无环图的单源最短路径问题
- 有向图的打印
- 有向图的可达性
- 有向图的欧拉路
- 有向图的存储
- 有向图的实现
- 有向图的邻接矩阵
- 有向图的拓扑有向序列
- Arbitrage &&汇率转换问题有向图
- DFS-有向图-排涝问题
- 有向图成环问题
- Button布局
- 实现异步通信
- Java解析XML的四种方法(3、4)
- 有关verilog truncated value with size 32 to match size of target警告的处理
- VC常用快捷键
- 有向图的多源多点问题,,,
- JSON
- 代码分析-DataGrid实现增删(带提示)改和分页
- OMA技术进展介绍
- 软件项目开发文档
- 为Linux集群创建新账户,并配置hadoop集群
- Java Web框架简介
- 标准C++中的string类的用法总结
- xml基础学习