博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 1151 Buy or Build(最小生成树+枚举子集)
阅读量:6331 次
发布时间:2019-06-22

本文共 768 字,大约阅读时间需要 2 分钟。

题意:

  在平面上有n个点,要让所有n个点都连通,所以你要构造一些边来连通他们,连通的费用等于两个端点的欧几里得距离的平方。另外还可以选择q个套餐,可以购买,套餐内的所有点将会被连通。求最小花费。

题解:

  如果不选择套餐的话,就是裸的MST。现在有了套餐可以选择,可以选择多个,那么就把它们(套餐里的点)先加入到生成树里,用位运算枚举集合的子集。

 

#include
#include
#include
#include
#include
using namespace std;const int maxn=1005,INF=0x3f3f3f3f;int n,cnt;int par[maxn];struct edge{ int u,v,cost; bool operator <(const edge& a) const//重载
<运算符 { return cost
>t; while(t--) { int q; cin>>n>>q; for(int i=0;i
>bu[i].num>>bu[i].cost; for(int j=0;j
>bu[i].a[j]; } cnt=0; for(int i=1;i<=n;i++) { cin>>p[i].x>>p[i].y; } for(int i=1;i
>=1; } mst+=kruskal(); ans=min(ans,mst); } cout<
<

 

 

 

  

转载于:https://www.cnblogs.com/orion7/p/7411388.html

你可能感兴趣的文章
Java面试笔试题大汇总一(最全+详细答案)
查看>>
10 个 Linux 中方便的 Bash 别名
查看>>
[Server] 服务器配置SSH登录邮件通知
查看>>
全新 DOCKER PALS 计划上线,带给您不一样的参会体验! ...
查看>>
Android开发之自定义View(二)
查看>>
python爬虫之微打赏(scrapy版)
查看>>
自制操作系统Antz day08——实现内核 (中) 扩展内核
查看>>
poj-1056-IMMEDIATE DECODABILITY(字典)
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>
FarBox--另类有趣的网站服务【转】
查看>>
在非纯色背景上,叠加背景透明的BUTTON和STATIC_TEXT控件
查看>>
Distributed2:Linked Server Login 添加和删除
查看>>
海量数据处理相关面试问题
查看>>
Python-time
查看>>
Java中取两位小数
查看>>
RTX发送消息提醒实现以及注意事项
查看>>
使用 ftrace 调试 Linux 内核【转】
查看>>
唯一聚集索引上的唯一和非唯一非聚集索引
查看>>