Electrification Plan

Prim

 #include<iostream>
#include<cstring>
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = ;
int n, k;
int dis[N], ct[N][N], vis[N]; int Prim()
{
int ans = ;
memset(vis, , sizeof(vis));
/*
for(int i = 1; i <= n; i++)
dis[i] = ct[1][i];
vis[1] = 1;
*/
while()
{
int v = -;
for(int i = ; i <= n; i++)
{
if(!vis[i] && (v == -||dis[v]>dis[i])) v = i;
}
if(v == -) break;
ans += dis[v];
vis[v] = ;
for(int i = ; i <= n; i++)
if(!vis[i])
dis[i] = min(dis[i], ct[v][i]);
}
return ans;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
cin >> n >> k;
memset(dis, INF, sizeof(dis));
int tmp;
while(k--)
{
cin >> tmp;
dis[tmp] = ;
}
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++)
cin >> ct[i][j];
cout << Prim() << endl;
return ;
}

Kruskal

 #include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = ;
struct node
{
int l, r, c;
bool operator < (const node & x)
{
return c < x.c;
}
}A[N*N];
int pre[N];
int Find(int x)
{
if(x == pre[x]) return x;
return pre[x] = Find(pre[x]);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
int n, m;
cin >> n >> m;
for(int i = ; i <= n; i++)
pre[i] = i;
int t, tmp;
cin >> t;
m--;
while(m--)
{
cin >> tmp;
t = Find(t);
tmp = Find(tmp);
pre[tmp] = t;
}
int cnt = ;
for(int i = ; i <= n; i++)
{
for(int j = ; j <= n; j++)
{
cin >> tmp;
if(i <= j) continue;
A[cnt].l = i, A[cnt].r = j, A[cnt++].c = tmp;
}
}
int ans = ;
sort(A, A+cnt);
for(int i = ; i < cnt; i++)
{
int x =A[i].l, y = A[i].r, ct = A[i].c;
x = Find(x), y = Find(y);
if(x == y) continue;
pre[y] = x;
ans += ct;
}
cout << ans << endl;
return ;
}

最新文章

  1. 自定义框架(MyMvc)
  2. C# 4.0 新特性dynamic (待学习)
  3. 前端见微知著JavaScript基础篇:this or that ?
  4. Java使用for循环打印乘法口诀(正倒左右三角形)
  5. 图解 &amp; 深入浅出 JavaWeb:Servlet 再说几句
  6. c/c++指针总结[pointer summary]
  7. lastLogon和lastLogonTimestamp的区别
  8. HDU5772 (最小割)
  9. Sencha Touch 2.4 callParent() 用法
  10. keditor_php图片上传
  11. sql生成20位数随机数
  12. HDU 5062 Beautiful Palindrome Number(数学)
  13. BZOJ 4152: [AMPPZ2014]The Captain( 最短路 )
  14. Alpha冲刺第十二天
  15. 依赖注入[6]: .NET Core DI框架[编程体验]
  16. TestNG Suite 运行出现中文乱码如何解决
  17. Python学习周末练习1-用户登录
  18. 15 python 初学(闭包,函数装饰器)
  19. 基于C语言的磁引导园丁机器人源程序 --单片机应用
  20. MySQL命令行下执行sql文件(sql脚本)

热门文章

  1. 又一个轮子--QMapper
  2. 如何在MySQL中输入中文
  3. Java匹马行天下之J2EE框架开发——Spring—&gt;Spring框架知多少
  4. 夯实Java基础(十二)——异常处理
  5. Vue系列:wangEditor富文本编辑器简单例子
  6. Oauth2认证模式之授权码模式实现
  7. Spring Boot Security Oauth2之客户端模式及密码模式实现
  8. 【模板】质数判断(Miller_Rabin)
  9. 获取n月后的当前时间
  10. C++ “::” 作用域符 双冒号