USACO Section 2.4: Bessie Come Home
2013-07-13 16:11
525 查看
因为题目给了边的信息,所以比较适用bell-man的方法
/* ID: yingzho1 LANG: C++ TASK: comehome */ #include <iostream> #include <fstream> #include <string> #include <map> #include <vector> #include <set> #include <algorithm> #include <stdio.h> #include <queue> #include <cstring> #include <cmath> #include <list> using namespace std; #define inf 10000000 ifstream fin("comehome.in"); ofstream fout("comehome.out"); int N; struct edge { char s, d; int e; edge(int a, int b, int c) : s(a), d(b), e(c) { } edge() : s(0), d(0), e(0) { } }; map<char, int> dis; int edgenum = 0; int main() { fin >> N; vector<edge> path(2*N); for (int i = 0; i < N; i++) { char s, d; int e; fin >> s >> d >> e; path[edgenum].s = s; path[edgenum].d = d; path[edgenum++].e = e; path[edgenum].s = d; path[edgenum].d = s; path[edgenum++].e = e; } //for (int i = 0; i < edgenum; i++) { //cout << "s: " << path[i].s << ", d: " << path[i].d << ", e: " << path[i].e << endl; //} for (char i = 'a'; i <= 'z'; i++) dis[i] = inf; for (char i = 'A'; i <= 'Z'; i++) dis[i] = inf; dis['Z'] = 0; bool flag; for (int i = 0; i < edgenum; i++) { flag = false; for (int j = 0; j < edgenum; j++) { if (dis[path[j].d] > dis[path[j].s]+path[j].e) { dis[path[j].d] = dis[path[j].s]+path[j].e; flag = true; //cout << "dis[" << path[j].d << "]: " << dis[path[j].d] << endl; } } if (!flag) break; } int min_path = inf; char min_index; for (int i = 0; i < edgenum; i++) { if (path[i].s >= 'A' && path[i].s < 'Z' && min_path > dis[path[i].s]) { min_path = min(min_path, dis[path[i].s]); //cout << path[i].s << "'s dis: " << dis[path[i].s] << endl; min_index = path[i].s; } } fout << min_index << " " << min_path << endl; return 0; }
相关文章推荐
- USACO Section 2.4 Bessie Come Home - 无限水法..Floyd模板题..囧..
- USACO-Section2.4 Bessie Come Home【dijkstra算法】
- USACO section2.4 Bessie Come Home题解&代码
- USACO Section 2.4 Bessie Come Home(dijkstra)
- USACO section 2.4 Bessie Come Home(最短路)
- USACO-Section 2.4 Bessie Come Home(最短路[Dijkstra])
- USACO section 2.4 Bessie Come Home(最短路)
- USACO Section 2.4 Bessie Come Home (comehome)
- USACO 2.4 Bessie Come Home(最短路)
- [USACO2.4]Bessie Come Home spfa
- usaco-Section 2.4-Bessie Come Home
- USACO 2.4 D Bessie Come Home 题解
- USACO - Chapter2 Section 2.4 - Bessie Come Home
- usaco 2.4 PROB Bessie Come Home<水>
- USACO 2.4 Bessie Come Home (Floyd最短路径)
- USACO 2.4 Bessie Come Home (comehome)
- JZOJ1274.【USACO题库】2.4.4 Bessie Come Home回家
- USACO section 2.4 Fractions to Decimals(小数处理)
- USACO section 2.4 The Tamworth Two(算模拟吧)
- Bessie Come Home chapter 2.4