Watering the Fields(irrigation)
#include <cstdio>
#include <algorithm>
struct edge{
int f,t,w;
} ed[5000000];
int pl,n,c,i,j,k,l,f[3000],x[3000],y[3000],t,ps,sum,t2;
inline void addedge(int f,int t,int w){
ed[++pl].t=t;
ed[pl].w=w;
ed[pl].f=f;
}
inline int find(int x){
t=x;
while(f[x]) x=f[x];
while(f[t]) t2=f[t],f[t]=x,t=t2;
return x;
}
bool merge(int a,int b){
a=find(a),b=find(b);
if(a==b) return false;
f[a]=b;
return true;
}
inline int dist(int x,int y){
return x*x+y*y;
}
bool cmp(edge a,edge b){
return a.w<b.w;
}
int main(){
scanf("%d%d",&n,&c);
for(i=1;i<=n;++i){
scanf("%d%d",x+i,y+i);
}
t=0;
for(i=1;i<n;++i){
for(j=i+1;j<=n;++j){
if((k=dist(x[i]-x[j],y[i]-y[j]))>=c){
addedge(i,j,k);
}
}
}
++pl;
std::sort(ed+1,ed+pl,cmp);
ps=n-1;
i=1;
while(ps && i<pl){
if(merge(ed[i].f,ed[i].t)) --ps,sum+=ed[i].w;
++i;
}
if(ps) printf("-1\n"); else printf("%d\n", sum);
return 0;
}
这个kruskal不知为何丧心病狂地慢..膜拜WJZ大神只有100+ms...700+ms的蒟蒻给跪
Watering the Fields(irrigation)的更多相关文章
- (寒假集训)Watering the Fields (最小生成树)
Watering the Fields 时间限制: 1 Sec 内存限制: 64 MB提交: 26 解决: 10[提交][状态][讨论版] 题目描述 Due to a lack of rain, ...
- 【BZOJ】3479: [Usaco2014 Mar]Watering the Fields(kruskal)
http://www.lydsy.com/JudgeOnline/problem.php?id=3479 这个还用说吗.... #include <cstdio> #include < ...
- BZOJ 3479: [Usaco2014 Mar]Watering the Fields(最小生成树)
这个= =最近刷的都是水题啊QAQ 排除掉不可能的边然后就最小生成树就行了= = CODE: #include<cstdio>#include<iostream>#includ ...
- Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(翻译)
0 - Abstract 我们提出了一种方法去在一张图片中有效地识别多个人体的2D姿势.这个方法使用了一个无参数表示法,我们将其叫为Part Affinity Fields(PAFs),其是去在图片中 ...
- Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(理解)
0 - 人体姿态识别存在的挑战 图像中的个体数量.尺寸大小.位置均未知 个体间接触.遮挡等影响检测 实时性要求较高,传统的自顶向下方法运行时间随着个体数越多而越长 1 - 整体思路 整个模型架构是自底 ...
- [luoguP1879] [USACO06NOV]玉米田Corn Fields(DP)
传送门 说要统计方案,感觉就是个 Σ 而矩阵中只有 01 ,可以用二进制表示 这样,预处理出每一个每一行所有可能的状态 s 然后初始化第一行所有状态的方案数为 1 f[i][j] = Σf[i - 1 ...
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- b2c项目基础架构分析(一)b2c 大型站点方案简述 已补充名词解释
我最近一直在找适合将来用于公司大型bs,b2b b2c的基础架构. 实际情况是要建立一个bs架构b2b.b2c的网站,当然还包括wap站点.手机app站点. 一.现有公司技术人员现状: 1.熟悉asp ...
- Elasticsearch通关教程(一): 基础入门
简介 Elasticsearch是一个高度可扩展的.开源的.基于 Lucene 的全文搜索和分析引擎.它允许您快速,近实时地存储,搜索和分析大量数据,并支持多租户. Elasticsearch也使用J ...
随机推荐
- SqlDependency数据库同步+signalr 推送消息
sqlDependency提供了这样一种能力:当被监测的数据库中的数据发生变化时,SqlDependency会自动触发OnChange事件来通知应用程序,从而达到让系统自动更新数据(或缓存)的目的. ...
- HashMap的一些用法
1.HashMap的遍历 //这个是通过 迭代器iterator 来实现 HashMap的遍历 Iterator iterator=hashMap.keySet().iterator(); while ...
- BZOJ-1854 游戏 二分图匹配 (并查集)
1854: [Scoi2010]游戏 Time Limit: 5 Sec Memory Limit: 162 MB Submit: 3372 Solved: 1244 [Submit][Status] ...
- IOS开发 证书总结
开发者证书 ------>> 首先你必须获得apple开发者证书,上图这个文件就是apple开发者证书,只要有apple的开发者账号就可以下载到,此证书可以直接到 developer ...
- Android Studio集成SVN报错:can't use subversion command line client : svn
Android Studio集成SVN插件,check out出代码后,每次开启都会在右上角出现如下错误: Can't use Subversion command line client: svn ...
- spark对于elasticsearch里的复杂类型支持
IP,直接在case class里用string, 可以考虑先用其它程序生成相关的mapping,然后再去用spark填充数据
- 简单了解Hibernate核心API
一.SessionFactory 1.它代表的是数据库的连接,其实就是在hibernate.cfg.xml文件中的配置信息 2.可以预定义SQL语句 3.SessionFactory是线程安全的,它维 ...
- 牛顿迭代法求n方根
一.简单推导 二.使用 借助上述公式,理论上可以求任意次方根,假设要求a(假设非负)的n次方根,则有xn=a,令f(x)=xn-a,则只需求f(x)=0时x的值即可.由上述简单推导知,当f(x)=0时 ...
- Bookmarklet
学习 http://www.ruanyifeng.com/blog/2011/06/a_guide_for_writing_bookmarklet.html
- sql 语句:给 text 数据类型排序
sql 语句: select * from 表 order by cast(字段 as varchar)