```cpp
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
cin>>d[(i-1)*4+j].c;
d[(i-1)*4+j].a=i;
d[(i-1)*4+j].b=j;
}
```
帅哥,这里的4都是n啊···
改过后可以A
by dfzzl @ 2016-02-05 09:36:34
```cpp
#include <iostream>
using namespace std;
bool flag[100];
int n, dist[100], w[100][100], ans = 0;
void Prim(int vi)
{
int k = vi;
for (int i = 0; i < n; i++)
dist[i] = w[vi][i];
flag[vi] = true;
for (int i = 0; i < n - 1; i++)
{
int min = 99999999;
for(int j = 0; j < n; j++)
if (dist[j] < min && !flag[j])
k = j, min = dist[j];
flag[k] = true;
for (int j = 0; j < n; j++)
if (dist[j] > w[k][j] && !flag[j])
dist[j] = w[k][j];
}
}
int main(int argc, char *argv[])
{
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> w[i][j];
Prim(0);
for (int i = 0; i < n; i++)
ans += dist[i];
cout << ans;
return 0;
}
```
by 这我也是醉了 @ 2016-12-14 20:09:11