P1550 [USACO08OCT]打井Watering Hole
传送门
如果没有挖井只是联通所有点就是最小生成树
但是有挖井,我们需要转换一下
把挖井操作看成 0 号点连一条边过去
然后还是最小生成树..
因为是稠密图,所以用 prim 算法来求最小生成树
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdio> #include<queue> using namespace std; typedef long long ll; inline int read() {int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }return x*f; } const int N=507,INF=0x3f3f3f3f; int n,ans,mp[N][N]; struct data {int dis,id;inline bool operator < (const data &tmp) const {return dis>tmp.dis;} }; priority_queue <data> q; int dis[N]; bool vis[N]; void prim(int st)//prim模板 {memset(dis,INF,sizeof(dis));q.push((data){0,st}); dis[0]=0;while(!q.empty()){data x=q.top(); q.pop();if(vis[x.id]) continue;vis[x.id]=1; ans+=x.dis;for(int i=0;i<=n;i++)if(dis[i]>mp[x.id][i]){dis[i]=mp[x.id][i];q.push((data){mp[x.id][i],i});}} } int main() {n=read();for(int i=1;i<=n;i++) mp[0][i]=mp[i][0]=read();//0号点连边for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) mp[i][j]=mp[j][i]=read();prim(0);printf("%d",ans);return 0; }
转载于:https://www.cnblogs.com/LLTYYC/p/9854655.html
P1550 [USACO08OCT]打井Watering Hole相关推荐
- 洛谷P1550 [USACO08OCT]打井Watering Hole
P1550 [USACO08OCT]打井Watering Hole 题目背景 John的农场缺水了!!! 题目描述 Farmer John has decided to bring water to ...
- Luogu P1550 [USACO08OCT]打井Watering Hole
0号结点:农夫John山泉天然矿泉水( by Luogu第一篇题解 #include<cstdio> #include<cstring> #include<algorit ...
- USACO oct. 09 Watering Hole
USACO oct. 09 Watering Hole 2017年7月15日 Prim算法 #include<iostream> #include<algorithm> #in ...
- [Usaco2008 Oct]Watering Hole 挖水井
相关链接:http://begin.lydsy.com/JudgeOnline/problem.php?id=1938 描述: Description 农夫约翰决定给他的N(1<=N<=3 ...
- [bzoj1601]灌水(洛谷P1550)
[USACO08OCT]Watering Hole G 洛谷灌水区 传送门 D e s c r i p t i o n Description Description Farmer John已经决定把 ...
- 2021春 算法复习
1. [USACO12FEB]Cow Coupons G 题面:https://www.luogu.com.cn/problem/P3045 贪心+堆.首先在优惠券没用完的情况下按优惠价从小到大全部买 ...
- POJ 2182 Lost Cows [树状数组+二分]
Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular di ...
- Lost Cows POJ - 2182(线段树)
N (2 <= N <= 8,000) cows have unique brands in the range 1-N. In a spectacular display of poor ...
- poj2182 Lost Cows-线段树
Description N (2 <= N <= 8,000) cows have unique brands in the range 1-N. In a spectacular dis ...
最新文章
- 物理机linux无法上网,物理机不能访问虚拟机VMNet8中的Linux
- springMVC乱码问题
- 汽车租赁系统java窗口_共享型汽车租赁系统(SSM+MySql)
- 小程序 移植 云开发_使用Kubernetes探索跨云的应用程序可移植性
- Unit 3 return codes and traps
- Codeforces 1029B. Creating the Contest 动态规划O(nlogn)解法 及 单调队列O(n)解法
- Mocha: 58同城 App 基于卡片的线上 AB 测(线上卡片动态换)
- android壁纸服务,android壁纸服务流程浅析
- Shiro面试题总结
- ML笔记 - 自然语言处理常用技术
- nodejs mysql嵌套查询_nodejs+mysql嵌套查询的问题
- favi.icon是什么?
- 机器人社社长事迹_新京报整版报道我校机器人学院校友刘鹏见义勇为等事迹
- 解决css样式中first-child和last-child不生效的问题
- DHCP:(5)华为防火墙USG上部署DHCP服务以及DHCP中继
- Windows系统自带录屏功能,再也不用下录屏软件了
- Jasper(2)——简单使用导出PDF报表
- 【信号去噪】基于蚁群算法优化小波阈值实现信号去噪附matlab代码
- 浙江农林大学ACM集训队2019级队长退役回忆录(未实际退役版本)
- 【Eelectron-vue】构建桌面应用(20)-electron的退出quit和exit
热门文章
- Python用20行代码实现完整邮件功能 [完整代码+建议收藏]
- c语言 乘号 指针 避免,C语言指针篇(一)指针与指针变量
- 数据中台不是企业的万能妙药
- 超多种类的报表模板,填上数据就能用,全拿走!
- 学会用这个工具做分析,1年积累3年工作经验
- 制药企业核算报表系统整体方案
- 饱和气压与温度的关系_气压和钓鱼的关系,冬天钓鱼还需要看气压吗?很多钓友都错了...
- android gallery源代码,可循环显示图像的Android Gallery组件
- 华尔街英语学习软件_华尔街英语吧啦吧啦聊点啥:语言学习交流至上
- android 图片墙拼贴,三步搞定 用APP打造图片文字拼贴效果