[Awson原创]修水渠(canal)
Description
Awson是某国际学校信竞组的一只菜鸡。他们班主任F老师喜欢带他们去爬爬唷喽山。登顶后,Awson有了个奇怪的发现。
山腰上有N(1<=N<=100)个村庄,这些村庄可以用平面坐标(X,Y)刻画。假设要给这N个村庄供水。已知1号村庄内有一个处理水厂, 从此处可以输水给其他各个村庄。现在给出M(1<=M<=10000)种修水渠的方案,每种方案的水渠连接两个村庄U,V。由于地势等其他原 因,水的运输是单向的,即只能从U运输到V。水渠是笔直的,即水渠的长度就是U,V两村庄的欧式距离。因为Awson是一个善于发现问题、提出问题,但不 喜欢解决问题的人。所以他找到了你,烦请你设计出能够将水输送到所有村庄的方案,并且使水渠总长度最小。
Input
第1行:两个整数,N,M。
接下来N行,每行两个整数,第i行Xi,Yi,表示村庄的坐标。
再接下来M行,每行两个整数,第i行Ui,Vi,表示Ui,Vi两村庄间有一条从Ui到Vi的修水渠方案。
Output
共1行,1个整数,表示使所有机房连上网的费用最小值。
Sample Input1
4 60 64 60 07 201 21 32 33 43 13 2
Sample Output1
Sample Input2
4 3 0 0 1 0 0 1 1 2 1 3 4 1 2 3
Sample Output2
Hint
样例解释:
对于样例1:选择第1、2、4方案,长度最小,其为31.19;
对于样例2:没有方案使其连通。
数据规模:
40%的数据:1<=N<=50,1<=M<=2500;
100%的数据:1<=N<=100,1<=M<=10000,1<=X,Y<=10000,数据不保证无自环,不保证无重边、回边。
题解
朱刘算法裸题,当模板存着。
#include<map>
#include<queue>
#include<stack>
#include<vector>
#include<ctime>
#include<cmath>
#include<cstdio>
#include<string>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
;
struct node
{
int x,y;
}pos[N+];
struct tt
{
int u,v;
double c;
}edge[N*N+];
int n,m,u,v;
inline double Dist(int u,int v);
];
];
];
],cnt;
double ZLEdmons();
int main()
{
scanf("%d%d",&n,&m);
;i<=n;i++) scanf("%d%d",&pos[i].x,&pos[i].y);
]={};
;i<=m;i++)
{
scanf("%d%d",&u,&v);
edge[i].v=v;
edge[i].u=u;
edge[i].c=Dist(u,v);
;
}
;i<=n;i++) if (!in[i])
{
printf("poor Awson\n");
;
}
printf("%.2lf\n",ZLEdmons());
;
}
inline double Dist(int u,int v){return sqrt((pos[u].x-pos[v].x)*(pos[u].x-pos[v].x)+(pos[u].y-pos[v].y)*(pos[u].y-pos[v].y));}
double ZLEdmons()
{
;
;
while (true)
{
memset(,sizeof(in));
;i<=m;i++)
{
if (edge[i].c<in[edge[i].v]&&edge[i].u!=edge[i].v)
{
in[edge[i].v]=edge[i].c;
pre[edge[i].v]=edge[i].u;
}
}
;
;
memset(id,-,sizeof(id));
memset(vis,-,sizeof(vis));
;i<=n;i++)
{
ans+=in[i];
v=i;
)
{
vis[v]=i;
v=pre[v];
}
)
{
id[v]=++cnt;
for (int u=pre[v];u!=v;u=pre[u]) id[u]=cnt;
}
}
) break;
;i<=n;i++) ) id[i]=++cnt;
;i<=m;i++)
{
v=edge[i].v;
edge[i].u=id[edge[i].u];
edge[i].v=id[edge[i].v];
if (edge[i].u!=edge[i].v) edge[i].c-=in[v];
}
n=cnt;
root=id[root];
}
return ans;
}
[Awson原创]修水渠(canal)的更多相关文章
- [Awson原创]网络(network)
Description Awson是某国际学校信竞组的一只菜鸡.学校为了使教育信息化,打算在学校内新建机房,并且为机房联网.但吝啬的学校又不想花费过多的开销,于是将规划 网络路线的任务交给了信竞组的A ...
- [Awson原创]洪水(flood)
Description Awson是某国际学校信竞组的一只菜鸡.今年,该市发生了千年难遇的洪水.被监禁在学校的Awson不甘怠堕,想将自己投入到公益服务事业中去.这天,他偷了H老师的小电驴,偷偷地溜出 ...
- hdoj 1532 Drainage Ditches【最大流模板题】
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDU 4009 Transfer water
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4009 题意:给出一个村庄(x,y,z).每个村庄可以挖井或者修建水渠从其他村庄得到水.挖井有一个代价, ...
- 树的问题小结(最小生成树、次小生成树、最小树形图、LCA、最小支配集、最小点覆盖、最大独立集)
树的定义:连通无回路的无向图是一棵树. 有关树的问题: 1.最小生成树. 2.次小生成树. 3.有向图的最小树形图. 4.LCA(树上两点的最近公共祖先). 5.树的最小支配集.最小点覆盖.最大独立集 ...
- HDU 4009 Transfer water(最小树形图)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4009 题意:给出一个村庄(x,y,z).每个村庄可以挖井或者修建水渠从其他村庄得到水.挖井有一个代价, ...
- Canal v1.1.4版本避坑指南
前提 在忍耐了很久之后,忍不住爆发了,在掘金发了条沸点(下班时发的): 这是一个令人悲伤的故事,这条情感爆发的沸点好像被屏蔽了,另外小水渠(Canal意为水道.管道)上线一段时间,不出坑的时候风平浪静 ...
- K8S Canal基于Prometheus进行实时指标监控
文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...
- ( [原创] 4s摄像头出现的问题及解决办法集锦。
[原创] 4s摄像头出现的问题及解决办法集锦. [复制链接] HPagani 34主题 126帖子 13人气 级别: 青苹果 帖子 126 经验 160 精华 人气 13 粉丝1 发消息 ...
随机推荐
- Leetcode 1——twosum
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- 团队开发---”我爱淘“校园二手书店 NABC分析
本项目特点之一:可预订 N:对于一些抢手的书可以提前预定,避免学生买不到书 A:网上下单,通过手机便捷购物 B:使得订书更加方便快捷 C:二手书摊.网上书店 团队成员:杨广鑫.郭健豪.李明.郑涛
- Tornado 用户身份验证框架
1.安全cookie机制 import tornado.web session_id = 1 class MainHandler(tornado.web.RequestHandler): def ge ...
- salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-fr ...
- 深度学习之 cnn 进行 CIFAR10 分类
深度学习之 cnn 进行 CIFAR10 分类 import torchvision as tv import torchvision.transforms as transforms from to ...
- 解决IE8下CSS3选择器 :nth-child() 不兼容的问题
1.定义和用法 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型. n 可以是数字.关键词或公式. <ul> <li>1</li> ...
- android- 远程调试
最近由于要在另外一台android设备上调试代码,在本机PC上查看其log.两台机器离的比较远, 无法用usb直接连接,于是在网上找了很多资料,最找使用adb connect方法解决了该问题.解决过程 ...
- 我对let和const理解
let和const是es6新出的两种变量声明的方式,接下来我来分别针对这两个,聊一聊. let let它的出现,我认为主要是解决了块级作用域的需求.因为js以前本身是没有什么块级作用域的概念的(顶 ...
- margin-top塌陷
margin-top 塌陷 在两个不浮动的盒子嵌套时候,内部的盒子设置的margin-top会加到外边的盒子上,导致内部的盒子margin-top设置失败,解决方法如下: 1.外部盒子设置一个边框: ...
- [Luogu1342] 请柬 - 最短路模板
Description 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣传剧院,尤其是古色古香的喜剧片.他们已经打印请帖和所有必要的信息和计划.许多学生被 ...