最短路坑题——贝西回家 uscow2.2.4
2016-01-30 09:42
288 查看
这道题坑点太多了:
1. 一共有51个牧场,而不是25个;
2.两个牧场之间可能有多条路,要取最短的一条;
3.这是无向图;
4.字符的输入比较坑爹。
代码如下:
#include<cstdio>
#include<iostream>
#include<vector>
const int inf=100000;
using namespace std;
vector<int>cow; //记下有牛的牧场
int m,n,x,y,dist[105],map[105][105],vis[105];
void input(){
int i,t,x,y,w,j;
char p,q;
cin>>n;
for(i=1;i<=52;i++)
for(j=1;j<=52;j++)
map[i][j]=inf;
for(i=1;i<=2*n;i+=2){
scanf("\n%c %c %d",&p,&q,&w);
if(p>='A'&&p<'Z'){
x=int(p)-65+1+26;
cow.push_back(x);
}
else if(p>90)x=int(p)-'a'+1;
else x=52;
if(q>='A'&&q<'Z'){
y=int(q)-65+1+26;
cow.push_back(y);
}
else if(q>90)y=int(q)-'a'+1;
else y=52;
map[x][y]=min(w,map[x][y]);
map[y][x]=map[x][y];
}
}
void solve(){ //Floyd算法
int i,k,j,ans,minn=inf;
for(k=1;k<=52;k++)
for(i=1;i<=52;i++)
for(j=1;j<=52;j++)
if(map[i][j]>map[i][k]+map[k][j])map[i][j]=map[i][k]+map[k][j];
for(i=0;i<cow.size();i++)
if(map[cow[i]][52]<minn)minn=map[cow[i]][52],ans=cow[i];
printf("%c %d",char('A'+ans-27),minn);
}
int main(){
input();
solve();
}
1. 一共有51个牧场,而不是25个;
2.两个牧场之间可能有多条路,要取最短的一条;
3.这是无向图;
4.字符的输入比较坑爹。
代码如下:
#include<cstdio>
#include<iostream>
#include<vector>
const int inf=100000;
using namespace std;
vector<int>cow; //记下有牛的牧场
int m,n,x,y,dist[105],map[105][105],vis[105];
void input(){
int i,t,x,y,w,j;
char p,q;
cin>>n;
for(i=1;i<=52;i++)
for(j=1;j<=52;j++)
map[i][j]=inf;
for(i=1;i<=2*n;i+=2){
scanf("\n%c %c %d",&p,&q,&w);
if(p>='A'&&p<'Z'){
x=int(p)-65+1+26;
cow.push_back(x);
}
else if(p>90)x=int(p)-'a'+1;
else x=52;
if(q>='A'&&q<'Z'){
y=int(q)-65+1+26;
cow.push_back(y);
}
else if(q>90)y=int(q)-'a'+1;
else y=52;
map[x][y]=min(w,map[x][y]);
map[y][x]=map[x][y];
}
}
void solve(){ //Floyd算法
int i,k,j,ans,minn=inf;
for(k=1;k<=52;k++)
for(i=1;i<=52;i++)
for(j=1;j<=52;j++)
if(map[i][j]>map[i][k]+map[k][j])map[i][j]=map[i][k]+map[k][j];
for(i=0;i<cow.size();i++)
if(map[cow[i]][52]<minn)minn=map[cow[i]][52],ans=cow[i];
printf("%c %d",char('A'+ans-27),minn);
}
int main(){
input();
solve();
}
相关文章推荐
- Linux下常用命令总结
- 对struts2的OGNL的理解
- 自作拖拽事件
- 使用Spring实现读写分离(MySQL实现主从复制)
- uva 580
- Yii - data exists update else insert
- cookie的设置、获取和删除封装
- 获取url中"?"符后的字串
- 多线程函数指针
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- IOException while loading persisted sessions: java.io.EOFException
- 关联规则—频繁项集Apriori算法
- 开发Rpg maker第一弹
- WPF实现界面动态布局
- 最短路径
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- OC--小知识总结
- Spring MVC程序中得到静态资源文件css,js,图片文件的路径
- js实现开关功能
- 实例讲解iOS应用开发中使用UITableView创建自定义表格