题目链接

Solution

基本上就是个板子.
因为 \(n\) 很小,只有 \(2000\),所以直接暴力建图,然后跑最小生成树就好了.

Code

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=2008;
struct sj{int to,fr; ll w;
}a[maxn*maxn];
int fa[maxn],num[maxn];
int n,cnt;
ll w[maxn],ans;ll read()
{char ch=getchar(); ll f=1,w=0;while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){w=w*10+ch-'0';ch=getchar();}return f*w;
}bool cmp(sj x,sj y)
{return x.w>y.w;}int find(int x)
{if(fa[x]==x)return x;else return fa[x]=find(fa[x]);
}void join(int x,int y)
{x=find(x),y=find(y);if(num[x]>num[y])swap(x,y);if(x!=y)fa[x]=y;num[y]+=num[x]; num[x]=0;
}int main()
{cin>>n;for(int i=1;i<=n;i++)w[i]=read(),fa[i]=i;for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)a[++cnt].fr=i,a[cnt].to=j,a[cnt].w=w[i]^w[j];sort(a+1,a+cnt+1,cmp);for(int i=1;i<=cnt;i++){int x=a[i].fr,y=a[i].to;if(find(x)!=find(y))join(x,y),ans+=a[i].w;}cout<<ans<<endl;
}

转载于:https://www.cnblogs.com/Kv-Stalin/p/9577320.html

[USACO15FEB]Superbull (最小生成树)相关推荐

  1. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)

    目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...

  2. [kuangbin带你飞]专题六 最小生成树 L - 还是畅通工程 (简单最小生成树)

    L - 还是畅通工程 题目链接:https://vjudge.net/contest/66965#problem/L 题目: 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府&qu ...

  3. 图的算法专题——最小生成树

    概要: Prim算法 Kruskal算法 1.Prim算法 算法流程: (1)对图G(V,E)设置集合S来存放已被并入的顶点,然后执行n次(2)(3) (2)每次从未并入顶点集合中选择与集合S最近的一 ...

  4. 【BZOJ1016】【Luogu P4208】 [JSOI2008]最小生成树计数 最小生成树,矩阵树定理

    蛮不错的一道题,遗憾就遗憾在数据范围会导致暴力轻松跑过. 最小生成树的两个性质: 不同的最小生成树,相同权值使用的边数一定相同. 不同的最小生成树,将其都去掉同一个权值的所有边,其连通性一致. 这样我 ...

  5. Educational Codeforces Round 9 F. Magic Matrix 最小生成树

    F. Magic Matrix 题目连接: http://www.codeforces.com/contest/632/problem/F Description You're given a mat ...

  6. [vijos1234]口袋的天空最小生成树

    题目链接:https://vijos.org/p/1234 白天刚刚写完prim的算法,晚上就心血来潮的打了一道最小生成树的题 虽然有题解说可以用prim做,但是这道题明显是加最小的边,感觉krusk ...

  7. Luogu P2619 [国家集训队2]Tree I(WQS二分+最小生成树)

    P2619 [国家集训队2]Tree I 题意 题目描述 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有\(need\)条白色边的生成树. 题目保证有解. 输入输出格式 输入格式 ...

  8. LA 5717枚举+最小生成树回路性质

    1 /*LA 5717 2 <训练指南>P343 3 最小生成树的回路性质 4 在生成的最小生成树上,新增一条边e(u,v) 5 若原图上u到v的路径的最大边大于e,则删除此边,加上e,否 ...

  9. 技术图文:如何利用C# 实现 Prim 最小生成树算法?

    背景 我们上一篇图文介绍了 如何利用 C# 实现 Kruskal 最小生成树算法?,Kruskal 算法通过寻找边最优的方式来构造最小生成树,本篇图文介绍如何利用 C# 实现 Prim 最小生成树算法 ...

最新文章

  1. 深入理解 Mybatis 插件开发
  2. aptana studio 3 汉化
  3. ASP.NET开发经验积累
  4. 数据挖掘学习笔记--决策树C4.5
  5. QPropertyAnimation实现游戏地图场景变换
  6. HDOJ 4699-Editor[栈]
  7. ---Android源码的下载单独的git库的方法
  8. python中os.system.获取输出信息_python中os.system()的返回值
  9. RocketMQ 使用及常见问题
  10. 虚拟专题:联邦学习 | 联邦学习算法综述
  11. 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_10-修改页面-前端-修改页面...
  12. 要是面试官再问我synchronized,我就这么答
  13. Open3D 凸包算法
  14. 软件测试术语中英文对照
  15. WiFi 802.11可调参数说明---信标间隔(Beacon Interval)
  16. AcWing 4071. 国际象棋
  17. java 核型技术 卷2 pdf,NGS-analysis/Structural-Variation.md at master · zhuhuo/NGS-analysis · GitHub...
  18. Nginx 配置优化
  19. 精品电子书分享 – 《JavaScript Enlightenment.PDF》
  20. 华为matebook笔记本鸿蒙,聊聊鸿蒙对笔记本电脑行业的影响

热门文章

  1. 无法启动baiMicrosoft Office Outlook。无法打开duOutlook窗口
  2. Maven依赖管理和插件配置
  3. (原创) 电源滤波为何要用几个不同量级的电容并联?
  4. 老板的表弟数不清(转)
  5. 基于Java NIO的Socket通信
  6. Linux 创建进程与关闭进程详解
  7. 上半年银行罚单不断,7月越早贷款越有利
  8. 温柔得叫人想死:日本电影《火宅之人》手记
  9. VGA显示器驱动设计与验证
  10. WinCE中的paging pool