2016夏季练习——最短路
2016-07-24 00:05
232 查看
来源:POJ2387
数据量很小,所以实际上大部分的图论算法都没有什么问题,选用floyd
代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 110;
int n;
int mp[MAXN][MAXN];
int d[MAXN][MAXN];
void floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j) continue;
if(d[i][j]>d[i][k]+d[k][j]){
d[i][j]=d[i][k]+d[k][j];
}
}
}
}
int maxlen;
int minlen=INF;
int flag;
for(int i=1;i<=n;i++){
maxlen = 0;
for(int j=1;j<=n;j++){
if(i==j) continue;
if(maxlen<d[i][j])
maxlen=d[i][j];
}
if(minlen>maxlen){
minlen=maxlen;
flag=i;
}
}
if(minlen<INF) cout<<flag<<" "<<minlen<<endl;
else cout<<"disjoint"<<endl;
}
int main(){
while(scanf("%d",&n)!=EOF){
if(!n) break;
memset(d,INF,sizeof(d));
for(int i=1;i<=n;i++){
int p;
scanf("%d",&p);
for(int j=1;j<=p;j++){
int cat,time;
scanf("%d%d",&cat,&time);
d[i][cat]=time;
}
}
floyd();
}
return 0;
}
数据量很小,所以实际上大部分的图论算法都没有什么问题,选用floyd
代码:
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXN = 110;
int n;
int mp[MAXN][MAXN];
int d[MAXN][MAXN];
void floyd(){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j) continue;
if(d[i][j]>d[i][k]+d[k][j]){
d[i][j]=d[i][k]+d[k][j];
}
}
}
}
int maxlen;
int minlen=INF;
int flag;
for(int i=1;i<=n;i++){
maxlen = 0;
for(int j=1;j<=n;j++){
if(i==j) continue;
if(maxlen<d[i][j])
maxlen=d[i][j];
}
if(minlen>maxlen){
minlen=maxlen;
flag=i;
}
}
if(minlen<INF) cout<<flag<<" "<<minlen<<endl;
else cout<<"disjoint"<<endl;
}
int main(){
while(scanf("%d",&n)!=EOF){
if(!n) break;
memset(d,INF,sizeof(d));
for(int i=1;i<=n;i++){
int p;
scanf("%d",&p);
for(int j=1;j<=p;j++){
int cat,time;
scanf("%d%d",&cat,&time);
d[i][cat]=time;
}
}
floyd();
}
return 0;
}
相关文章推荐
- cmd 常见命令(type(读取文本文件)、Shell:AppsFolder)
- JAVA面向对象-----多态
- JAVA面向对象-----多态
- 基于JSP的RSS阅读器的设计与实现方法(推荐)
- JSP使用过滤器防止SQL注入的简单实现
- .net core 1.0 实现单点登录负载多服务器
- 网上相册(上传与下载)
- 基于jQuery实现多标签页切换的效果(web前端开发)
- 省市二级联动小案例讲解
- JavaScript学习小结之使用canvas画“哆啦A梦”时钟
- JavaScript提高网站性能优化的建议(二)
- JavaScript关于提高网站性能的几点建议(一)
- JS中的==运算: [''] == false ―>true
- 深入理解javascript作用域第二篇之词法作用域和动态作用域
- javascript中sort排序实例详解
- JavaScript表单焦点自动切换代码
- JavaScript禁止用户多次提交的两种方法
- 内容运营|公众号没话题可写?试试UGC吧~
- 周鸿祎上直播看点很多:美女、音乐、AI、豪宅,可网民最新奇的是他家门口的自动塑封鞋套
- 读懂 Android 中的代码混淆