高校计算机教育现状之学生
2010-05-16 07:53
260 查看
/* THE PROGRAM IS MADE BY PYY */ /*----------------------------------------------------------------------------// Copyright (c) 2011 panyanyany All rights reserved. URL : http://acm.hdu.edu.cn/showproblem.php?pid=2112 Name : 2112 HDU Today Date : Friday, January 13, 2012 Time Stage : Result: 5250873 2012-01-13 10:05:57 Accepted 2112 2703MS 416K 1963 B C++ pyy 5250866 2012-01-13 10:03:43 Wrong Answer 2112 2718MS 416K 1934 B C++ pyy Test Data : Review : 这是个无向图,要判断有无重边。基本上属于模板题。 //----------------------------------------------------------------------------*/ #include <stdio.h> #include <string.h> #include <iostream> #include <string> using namespace std ; #define INF 0x3f3f3f3f #define MAXN 202 #define min(x, y) ((x) < (y) ? (x) : (y)) bool used[MAXN] ; int n, iAreaCnt ; int map[MAXN][MAXN], dist[MAXN] ; string id[MAXN] ; int getId (string str) { int i ; for (i = 0 ; i < iAreaCnt ; ++i) if (str == id[i]) return i ; id[iAreaCnt] = str ; return iAreaCnt++ ; } int dijkstra (const int start, const int end) { int i, j ; int iMinPath, MinPath ; memset (used, 0, sizeof (used)) ; for (i = 0 ; i < iAreaCnt ; ++i) { dist[i] = map[start][i] ; } dist[start] = 0 ; for (i = 0 ; i < iAreaCnt ; ++i) { iMinPath = 0 ; MinPath = INF ; for (j = 0 ; j < iAreaCnt ; ++j) { if (!used[j] && dist[j] < MinPath) { iMinPath = j ; MinPath = dist[j] ; } } used[iMinPath] = true ; for (j = 0 ; j < iAreaCnt ; ++j) if (!used[j] && dist[iMinPath] + map[iMinPath][j] < dist[j]) dist[j] = dist[iMinPath] + map[iMinPath][j] ; } if (dist[end] == INF) return -1 ; return dist[end] ; } int main (void) { int i, j ; int start, end, x, y, c ; string a, b ; while (scanf ("%d", &n), n != -1) { iAreaCnt = 0 ; cin >> a >> b ; start = getId (a) ; end = getId (b) ; memset (map, INF, sizeof (map)) ; for (i = 0 ; i < n ; ++i) { cin >> a >> b >> c ; x = getId (a) ; y = getId (b) ; map[x][y] = map[y][x] = min (map[x][y], c) ; } printf ("%d\n", dijkstra (start, end)) ; } return 0 ; }
相关文章推荐
- 解决普通高校(二本)学生教育结症的好方法,培养超一流的学生
- 树莓派(为学生计算机编程教育设计的一种卡片式电脑)
- 树莓派(为学生计算机编程教育设计的一种卡片式电脑)
- 美国高校学生如何使用计算机实验室
- 中国高校计算机教育评价之教材篇
- 转微软高校博客一篇有关中国计算机教育的文章:认清现实,才能找回理想
- 中国高校GIS 教育现状
- 树莓派 (为学生计算机编程教育设计的一种卡片式电脑)
- 两岸三地高校发报告称富士康滥用学生劳动力
- 计算机专业学生就业方向
- 炮轰某校的计算机教育
- 2015河南科技学院高校CSDN俱乐部与计算机协会共同举办PPT大赛
- 某高校食堂与学生的斗争图
- “下载”中“载”的发音应该读几声——计算机学生视角
- 10.A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:
- 转,对计算机学生
- 从计算机复试看中国教育——一个面试官的经历
- 从计算机复试看中国教育——一个面试官的经历
- 我被中国计算机教育的现实打败了
- 我对《我被中国计算机教育的现实打败了》整个事件的反思