USACO2.4.4 Bessie Come Home (comehome)
2015-01-29 17:48
253 查看
题差不多是一个裸的单源最短路,用Dijkstra、Floyd、SPFA做都可以
其中Floyd是(N^3),Dijkstra和SPFA都是(N^2),但因为数据范围很小(只有52个字母),用哪一种都可以
这里用的是Floyd(因为Floyd比较好写)
其中Floyd是(N^3),Dijkstra和SPFA都是(N^2),但因为数据范围很小(只有52个字母),用哪一种都可以
这里用的是Floyd(因为Floyd比较好写)
/* ID:xsy97051 LANG:C++ TASK:comehome */ #include <iostream> #include <cstdio> #define INF 1000000000 using namespace std; int p,dis[53][53]; int zhuan(char c) { if ((c>='a')&&(c<='z')) return (c-'a'+27); if ((c>='A')&&(c<='Z')) return (c-'A'+1); } int main() { freopen("comehome.in","r",stdin); freopen("comehome.out","w",stdout); cin>>p; for(int i=1;i<=52;i++) for(int j=1;j<=52;j++) dis[i][j]=INF; for(int i=1;i<=p;i++) { char c; int x,y,d; cin>>c; x=zhuan(c); cin>>c; y=zhuan(c); cin>>d; if(d<dis[x][y]) dis[x][y]=dis[y][x]=d; } for(int k=1;k<=52;k++) for(int i=1;i<=52;i++) for(int j=1;j<=52;j++) dis[i][j]=min(dis[i][k]+dis[k][j],dis[i][j]); int ans=INF,k; for(int i=1;i<=25;i++) if(dis[i][26]<ans) { ans=dis[i][26]; k=i; } cout<<char(k+'A'-1)<<" "<<ans<<endl; return 0; }
相关文章推荐
- USACO2.4.4 Bessie Come Home (comehome)
- USACO Section 2.4 Bessie Come Home (comehome)
- Bessie Come Home_usaco2.4.4_floyd
- JZOJ1274.【USACO题库】2.4.4 Bessie Come Home回家
- USACO 2.4 Bessie Come Home (comehome)
- usaco 2.4.4 comehome
- USACO Bessie Come Home,最短路径,Dijstra
- USACO Section 2.4 Bessie Come Home(dijkstra)
- Usaco2.44Bessie Come Home(floyd)
- usaco2.4.4 Bessie Come Home
- USACO 2.4 Bessie Come Home (Floyd最短路径)
- USACO-Section2.4 Bessie Come Home【dijkstra算法】
- USACO Bessie Come Home,Dijkstra算法的好题
- [USACO2.4]Bessie Come Home spfa
- USACO2.4.4--Bessie Come Home
- USACO:Bessie Come Home解题报告
- USACO 2.4 D Bessie Come Home 题解
- USACO 2.4 Bessie Come Home(最短路)
- usaco ★Bessie Come Home 回家
- USACO 2.4.4 Bessie Come Home