倒腾了一个小时  自己也没去看网上的

总算自己能写出来模板了

kruskal

//最小生成树  每次找最短的边
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = ;
int n,m;
ll res;
struct node
{
int st,e;
int cost;
}E[maxn];//建立边
int fa[maxn]; void init()
{
for(int i=;i<=n;i++)
fa[i] = i;
} int fi(int x)
{
return fa[x] == x? x : fa[x] = fi(fa[x]);
} void join(int x,int y)
{
int fx =fi(x),fy = fi(y);
if(fx != fy)
{
fa[fx] = fy;
}
} bool same(int x,int y)
{
return fi(x) == fi(y);
}
bool cmp(node a,node b)
{
return a.cost < b.cost;
} void solve()
{
init();
res = ;
sort(E+,E++m,cmp);
for(int i=;i<=m;i++)
{
node now = E[i];
if(same(now.st,now.e))
continue; //之前建立过边的 直接跳过
join(now.st,now.e);
res += E[i].cost;
}
} int main()
{
//freopen("in.txt","r",stdin);
while (~scanf("%d %d",&n,&m) )
{
for(int i=;i<=m;i++)
{
int x,y,v;
scanf("%d %d %d",&x,&y,&v);
E[i].st = x;
E[i].e = y;
E[i].cost = v;
}
solve();
bool flag = ;
for(int i=;i<=n;i++)
{
if(!same(,i))
{
flag =;break;
}
}
if(flag)
puts("orz");
else
cout<<res<<endl;
}
}

prim

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = ;
struct node {
int to,cost;
node (int t,int c):to(t),cost(c){}
bool operator<(const node& l)const
{
return cost > l.cost;
}
};
vector<node> E[maxn];
priority_queue<node> Q;
bool vis[maxn];
ll d[maxn];
int main ()
{
int n,m;
cin>> n>>m;
for(int i=;i<=m;i++)
{
int x,y,v;
scanf("%d %d %d",&x,&y,&v);
E[x].push_back({y,v});
E[y].push_back({x,v});
}
for(int i=;i<E[].size();i++)
Q.push(E[][i]);
d[] = ;vis[] = ;
ll res=;
while (Q.size())
{
node now = Q.top();
Q.pop();
if(vis[now.to])
continue;
res += now.cost;
vis[now.to] =;
for(int i=;i <E[now.to].size();i++)
{
Q.push(E[now.to][i]);
}
}
bool flag = ;
for(int i=;i<=n;i++)
{
if(!vis[i])
{
flag =;
break;
}
}
if(flag )
puts("orz");
else
cout<<res<<endl;
}

luogu p3366 最小生成树模板的更多相关文章

  1. 【原创】洛谷 LUOGU P3366 【模板】最小生成树

    P3366 [模板]最小生成树 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N ...

  2. Luogu P3366 【模板】最小生成树

    qwq #include<cstdio> #include<algorithm> using namespace std; ]; int n,m; struct abc { i ...

  3. 【luogu P3366 最小生成树】 模板

    这里是kruskal做法 当然prim也可以,至于prim和kruskal的比较: Prim在稠密图中比Kruskal优,Kruskal在稀疏图中比Prim优. #include<bits/st ...

  4. 【luogu P3366 最小生成树】 题解 Prim

    include include include include using namespace std; const int maxn = 505000; int n, m, dis[maxn], v ...

  5. 洛谷P3366 【模板】最小生成树 题解

    题目链接:https://www.luogu.org/problem/P3366 最小生成树模板题. Kruskal算法 算法思想:给边按边权从小到大排序,然后遍历每一条边,如果边上的两个点不在同一个 ...

  6. 最小生成树 & 洛谷P3366【模板】最小生成树 & 洛谷P2820 局域网

    嗯... 理解生成树的概念: 在一幅图中将所有n个点连接起来的n-1条边所形成的树. 最小生成树: 边权之和最小的生成树. 最小瓶颈生成树: 对于带权图,最大权值最小的生成树. 如何操作? 1.Pri ...

  7. 洛谷P3366 【模板】最小生成树

    P3366 [模板]最小生成树 319通过 791提交 题目提供者HansBug 标签 难度普及- 提交  讨论  题解 最新讨论 里面没有要输出orz的测试点 如果你用Prim写了半天都是W- 题目 ...

  8. P3366 【模板】最小生成树(boruvka/sollin)

    P3366 [模板]最小生成树 boruvka/sollin 复杂度$O(mlogn)$ 简要说明一下过程 引入一个数组$link[i]$表示连通块$i$下一步可更新的最短的边的编号 1.每次枚举所有 ...

  9. 洛谷P3366【模板】最小生成树-克鲁斯卡尔Kruskal算法详解附赠习题

    链接 题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M&l ...

随机推荐

  1. 2012Noip提高组Day2 T3 疫情控制

    题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都,也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到 ...

  2. PostgreSQL远程代码执行漏洞(CVE-2018-1058)学习笔记

    零.参考文献和绪论: 1.先知社区chybeta大神的--PostgreSQL 远程代码执行漏洞分析及利用—[CVE-2018-1058]--一文 2.博客园hunchill的--Mac 下 Post ...

  3. 12.文件系统fs

    文件系统fs ==> 提供文件的读取, 写入, 更名, 删除, 遍历目录, 链接等POSIX文件系统操作 1.fs.readFile(filename, [encoding], [callbac ...

  4. 【BZOJ1915】[Usaco2010 Open]奶牛的跳格子游戏 DP+单调队列

    [BZOJ1915][Usaco2010 Open]奶牛的跳格子游戏 Description 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3 <= ...

  5. nginx如何利用自定义的conf文件启动?

    1.进入nginx的安装目录; 2.nginx -s -c conf/my.conf  (校验该文件是否有效)   nginx -s -c conf/my.conf 命令会卡死,存疑 3.start ...

  6. Python 自学积累(一)

    1. 当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: python d:/pythonS ...

  7. vue视频: 自定义指令 && 拖拽 && 自定义键盘信息

    v-textv-forv-html 指令: 扩展html语法 自定义指令:1. 自定义属性指令: Vue.directive(指令名称,function(参数){ this.el -> 原生DO ...

  8. input输入框制定输入数据类型匹配

    <input type="text" id="price_169" value="97" style="max-width: ...

  9. 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkoAAAFfCAIAAAA+snR7AAAgAElEQVR4nOzdZ1xT18PAcf+1VpZaW6

  10. 各大互联网企业Java面试题汇总,看我如何成功拿到百度的offer

    前言 本人Java开发,5年经验,7月初来到帝都,开启面试经历,前后20天左右,主面互联网公司,一二线大公司或者是融资中的创业公司都面试过,拿了一些offer,其中包括奇虎360,最后综合决定还是去百 ...