九度Online Judge解题报告

来源:互联网 发布:dede tag标签源码 编辑:程序博客网 时间:2024/05/19 02:39

九度1017:题目如下:

题目描述:
    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。
输入:

    测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。为简单起见,村庄从1到N编号。
    当N为0时,输入结束,该用例不被处理。

输出:

    对每个测试用例,在1行里输出最小的公路总长度。

样例输入:
31 2 11 3 22 3 441 2 11 3 41 4 12 3 32 4 23 4 50
样例输出:
35
简单分析一下:这题就是求最短路径,或者说,是求最小生成树的,我是用Prim算法AC的,先上代码再说:

#include <stdio.h>#include <stdlib.h>#include <string.h>const int N = 100;const int MaxInt = 99999999;int map[100][100], low[100], visited[100], n;int prim(){    int i, j, min, pos;    int result = 0;        memset(low, 0, sizeof(low));    memset(visited, 0, sizeof(visited));    visited[1] = 1;   pos = 1;        for(i = 1; i <= n; i++)          if(i != pos)               low[i] = map[pos][i];            for(i = 1; i < n; i++)    {          min = MaxInt;          for(j = 1; j <= n; j++)                if(visited[j] == 0 && min > low[j])                {                          min = low[j];                          pos = j;                }                          visited[pos] = 1;          result += min;                    for(j = 1; j <= n; j++)                if(visited[j] == 0 && low[j] > map[pos][j])                          low[j] = map[pos][j];    }    min = 0;    return result;}int main(){    int i, j, s, e, w, m;        while(~scanf("%d", &n))    {          if(n == 0)               break;                         m = n*(n-1)/2;                    for(i = 1; i <= n; i++)                  for(j = 1; j <= n; j++)                        map[i][j] = MaxInt;                    for(j = 1; j <= m; j++)          {                  scanf("%d %d %d", &s, &e, &w);                  map[s][e] = map[e][s] = w;          }          printf("%d\n", prim());    }        //system("pause");    return 0;}
好了,接下来该我吐槽了,真不知道这Judge是怎么搞得,注意到我用的全局变量那些数组了吗,其中的100是我const的常量,但是如是:map[N][N]却一直报错,我真搞不懂我是哪里错了,大神Judge能给指点一下吗?非得逼我改成确定的100才行,话说我那时const过的啊!!!!!!

原创粉丝点击