bzoj3479 [Usaco2014 Mar]Watering the Fields(prim裸题)
来源:互联网 发布:读三毛梦里花落知多少 编辑:程序博客网 时间:2024/06/05 14:36
prim,O(n^2)求最小生成树。每次贪心的把最小边加进去。
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define pa pair<int,int>#define N 2010inline 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*10+ch-'0',ch=getchar(); return x*f;}int n,c,tot=0,d[N],ans=0;struct node{int x,y;}a[N];bool vis[N];void prim(){ priority_queue<pa,vector<pa>,greater<pa> >q;memset(d,0x3f,sizeof(d)); d[1]=0;q.push(make_pair(0,1)); while(!q.empty()){ int x=q.top().second;q.pop(); if(vis[x]) continue;vis[x]=1;++tot;ans+=d[x]; for(int i=1;i<=n;++i){ if(vis[i]) continue;int dx=(a[x].x-a[i].x)*(a[x].x-a[i].x)+(a[x].y-a[i].y)*(a[x].y-a[i].y); if(dx>=c&&dx<d[i]) d[i]=dx,q.push(make_pair(d[i],i)); } }}int main(){// freopen("a.in","r",stdin); n=read();c=read(); for(int i=1;i<=n;++i) a[i].x=read(),a[i].y=read(); prim(); if(tot!=n) puts("-1"); else printf("%d\n",ans); return 0;}
阅读全文
0 0
- bzoj3479 [Usaco2014 Mar]Watering the Fields(prim裸题)
- bzoj3479 [Usaco2014 Mar]Watering the Fields
- bzoj3479【Usaco2014 Mar】Watering the Fields
- 【BZOJ3479】[Usaco2014 Mar]Watering the Fields【最小生成树】
- bzoj 3479: [Usaco2014 Mar]Watering the Fields 最小生成树
- 高中OJ3810. 【USACO2014 3月】Watering the Fields
- Watering the Fields (最小生成树)
- USACO2014MarchSilver Watering the Fields
- Watering the Fields题解
- jzoj 3810 Watering the Fields
- BZOJ 3476: [Usaco2014 Mar]The Lazy Cow
- 洛谷P2212 [USACO14MAR]浇地Watering the Fields
- bzoj3480【Usaco2014 Mar】Mooo
- [Usaco2014 Mar]Sabotage(dp)
- 3477: [Usaco2014 Mar]Sabotage
- 2014.3 USACO月赛T1 Watering the Fields
- bzoj 3480 [Usaco2014 Mar]Mooo
- 二分答案 [Usaco2014 Mar]Sabotage
- Windows internals 7 -- 1 -- 瞎扯扯
- 特征工程
- Ajax ——无刷新页面加载页面
- 线性表--顺序存储结构
- java-源码解读-java类加载机制
- bzoj3479 [Usaco2014 Mar]Watering the Fields(prim裸题)
- redis-订阅与发布
- 编写批处理脚本启动和关闭Oracle
- 第四周项目2-建设“单链表”算法库
- CodeForces
- 谨慎使用pkill 这个命令
- Sequoiadb分布式数据库调整内核参数
- python基础
- mongodb概念--文档、集合、数据库、shell