WOJ-Problem 1009 - The Legend of Valiant Emigration
2015-02-15 22:23
771 查看
<pre name="code" class="cpp">#include<iostream> #include<cstring> #include<queue> #define N 105 #define INF 0x7fffffff #define mcv(a, v) memset(a, v, sizeof(a)) #define rep(i, n) for (int i = 0; i < (n); ++i) #define repd(i,n) for (int i=(n);i>=0;i--) using namespace std; struct Node{ int p, s; char l[3]; }; int p_l, s_l, dis ,dist ,pre ; int n, m; Node e ; inline bool relax(int u, int v){ if (dist[u] + dis[u][v] < dist[v]){ dist[v] = dist[u] + dis[u][v]; return true; } else return false; } inline bool judge(Node s){ if (s.p < p_l&&s.s < s_l) return true; else { return false; } } void bfs(){ int visit ; mcv(visit, 0); queue<int> q; q.push(0); visit[0] = true; dist[0] = 0; while (!q.empty()){ int temp = q.front(); q.pop(); rep(i,n) if(!visit[i]&&dis[temp][i]&&judge(e[temp][i])&&relax(temp,i)) { q.push(i); pre[i] = temp; visit[i] = true; } visit[temp] = false; } } void sprint(){ int k = n - 1,top = 0; Node st ; while (k){ st[top++] = e[pre[k]][k]; k = pre[k]; } repd(i, top-1) printf("%s", st[i].l); } int main(){ while (cin >> n >> m){ rep(i, n) dist[i] = 0x7fffffff; mcv(dis, 0); mcv(e, 0); mcv(pre, -1); rep(i,m){ int s, t, pl, sl, v; char ch[3]; cin >> s >> t >> pl >> sl >> v >> ch; dis[s][t] = dis[t][s]= v; e[s][t].p = e[t][s].p= pl; e[s][t].s = e[t][s].s= sl; strcpy_s(e[s][t].l, ch); strcpy_s(e[t][s].l, ch); } cin >> p_l >> s_l; bfs(); sprint(); cout << endl; } }
最短路径,所用的是Bellman-Ford算法。
相关文章推荐
- woj1009 - The Legend of Valiant Emigration
- WOJ1009-The Legend of Valiant Emigration
- La (NWERC2007 Problem B )- March of the Penguins(最大流 拆点)
- ModelSim6.2 설치에 관한(About the Installation problem of ModelSim 6.2)
- The 9th Zhejiang Provincial Collegiate Programming Contest->Problem :K-Yet Another Story of Rock-pap
- TFS2010-Closed the problem of 【TF201077】 【TF212000】
- Android A problem was found with the configuration of task ':app:packageRelease'
- Java版桌面战棋游戏TLOH(The Legend of Heroes)开发预告
- Visualisation of Genetic Algorithms for the Traveling Salesman Problem in Java --by Johannes Sarg
- 5 Whys Quickly Getting to the Root of a Problem
- Error:A problem was found with the configuration of task ':app:packageBAIDURelease'.
- a的n次幂 —— POJ 3100 Root of the Problem
- POJ 3100 Root of the Problem(我的水题之路——取A^N最接近B的A)
- Flex Builder cannot locate the required debug version of the Flash Player problem .(转帖)
- Java版桌面战棋游戏TLOH(The Legend of Heroes)开发预告
- The problem of Zigzag pattern
- Error:A problem was found with the configuration of task ':app:packageDebug' 问题解决
- 《海上钢琴师》The Legend Of 1900
- The problem of English OS show chinese.
- UPC_Shandong muti-university Contest Problem I——The war of 3Q