新的开始
题目
数据范围:
n
n
n<=300,
0
<
=
v
i
,
p
i
,
j
<
=
100000
0<=v_i,p_{i,j}<=100000
0<=vi,pi,j<=100000
解析
显然的prim板子(加了优化只会更慢,妙啊)
做法见此
只需设0号矿井为超级电源,跑一遍prim即可
code:
#include<cstdio>
#include<iostream>
using namespace std;
int n,a[310][310],to[310],ans,la;
bool u[310];
int main()
{
scanf("%d",&n),to[301]=1e9,to[0]=0;
for(int i=1;i<=n;++i)to[i]=1e8;
for(int i=1;i<=n;++i)scanf("%d",&a[i][0]),a[0][i]=a[i][0];
for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)scanf("%d",&a[i][j]);
for(int i=0;i<=n;++i)
{
la=301;
for(int j=0;j<=n;++j)if((!u[j])&&to[la]>to[j])la=j;
u[la]=1,ans+=to[la];
for(int j=0;j<=n;++j)to[j]=min(to[j],a[la][j]);
}
printf("%d",ans);
return 0;
}