您的位置:首页 > 其它

最小生成树Prime算法(模板)

2018-02-11 20:01 232 查看
我认为这个模板好记。。。。。。

模板代码:

const int maxn = 100+7;
const int INF = 1e5+7;

struct gg{
int first;
int second;
};

vector<gg> g[maxn];
bool v[maxn];
int dis[maxn],N;

int prim() {
memset(v, 0, sizeof(v));
for(int i = 1; i < N; i++) dis[i] = INF;
dis[1] = 0;
int ans = 0;
for(int i = 1; i <= N; i++) {
int mark = -1;
for(int j = 1; j <= N; j++) if(!v[j])
if(mark == -1) mark = j;
if(mark == -1) break;
v[mark] = 1;
ans += dis[mark];
for(int j = 0; j < g[mark].size(); j++) if(!v[g[mark][j].first]) {
int x = g[mark][j].first;
dis[x] = min(dis[x], g[mark][j].second);
}
}
return ans;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: