| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么这个过不了poj1258,不就是裸prim么#include<iostream>
using namespace std;
int n;
long dis[105][105];
long cost[105];
bool vis[105];
long long ans=0;
void prim()
{
int k;
for (int i=1; i<=n; i++)
{
long minn=2139062143;
for (int j=1; j<=n; j++)
{
if (!vis[j] && cost[j]<minn)
{
minn=cost[j];
k=j;
}
}
vis[k]=true;
ans+=minn;
for (int j=1; j<=n; j++)
if (!vis[j] && dis[k][j]>0 && dis[k][j]<cost[j])
cost[j]=dis[k][j];
}
}
void init()
{
cin>>n;
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
cin>>dis[i][j];
for (int i=1; i<=n; i++)
{
cost[i]=2139062143;
vis[i]=false;
}
cost[1]=0;
}
int main()
{
init();
prim();
cout<<ans<<endl;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator