superman

聚精会神搞建设 一心一意谋发展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Section 3.1 - Agri-Net

Posted on 2009-04-24 10:55 superman 阅读(103) 评论(0)  编辑 收藏 引用 所属分类: USACO
 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     freopen("agrinet.in""r", stdin);
 8     freopen("agrinet.out""w", stdout);
 9 
10     int n, map[100][100];
11 
12     cin >> n;
13     for (int i = 0; i < n; i++)
14     for (int j = 0; j < n; j++)
15         cin >> map[i][j];
16 
17     //=====prim=====
18     int lowcost[100];
19     int vset[100];
20     int ans = 0;
21 
22     vset[0= 1;
23     for (int i = 1; i < n; i++)
24     {
25         lowcost[i] = map[0][i];
26         vset[i] = 0;
27     }
28 
29     for (int k = 1; k < n; k++)
30     {
31         int min = INT_MAX, p;
32         for (int i = 0; i < n; i++)
33             if (vset[i] == 0 && lowcost[i] < min)
34             {
35                 min = lowcost[i];
36                 p = i;
37             }
38         ans += min;
39         vset[p] = 1;
40         for (int i = 0; i < n; i++)
41             if (vset[i] == 0 && map[p][i] < lowcost[i])
42                 lowcost[i] = map[p][i];
43     }
44 
45     cout << ans << endl;
46 
47     return 0;
48 }
49 

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理