【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
2016-09-03 21:45
369 查看
Description
Zjr506很喜欢猫,某一天他突然心血来潮,想捕捉学校里活动的猫。为了捕猫,Zjr506在校园中放置了N个木桩,当他见到有猫进入他的狩猎范围后,就会以迅雷不及掩耳的速度在一些木桩之间绕上藩篱以困住这些猫。
一段时间后,Zjr506在绕了M个藩篱后兴高采烈的离开了。作为正义的使者,Ztxz16不忍心看到这些猫受到折磨,于是决定拆除一些藩篱让所有的猫都逃出去。因为Zjr506的巧妙设计,藩篱不会在除木桩之外的地方相交。这些藩篱构成了一些封闭的区域,每一个区域中都有一只猫。
因为Zjr506制造这些藩篱也不容易,所以Ztxz16希望拆除的藩篱总长度尽量小,现在他希望你告诉他最小的总长度。
Solution
一开始把模型看成,找到所有的简单环,然后再逐个合并。但是,找简单环再合并,太麻烦了!!!
其实有很多个环,然后每个环再去掉一条边,使得去掉的边的最小。那么明显可以用最大生成树。
然后,就没了。
Code
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define fo(i,a,b) for(i=a;i<=b;i++) #define rep(i,a) for(i=first[a];i;i=next[i]) using namespace std; const int maxn=100007; int i,j,k,l,t,n,m; double ans,ans1; struct node{ int a,b; double c; }a[maxn]; int x[maxn],y[maxn],f[maxn]; bool bz[maxn],az[maxn]; int gf(int x){ if(!f[x])return x; f[x]=gf(f[x]); return f[x]; } double ju(int x,int y,int xx,int yy){ return sqrt((x-xx)*(x-xx)+(y-yy)*(y-yy)); } bool cmp(node x,node y){ return x.c>y.c; } int main(){ scanf("%d%d",&n,&m); fo(i,1,n)scanf("%d%d",&x[i],&y[i]); fo(i,1,m){ scanf("%d%d",&a[i].a,&a[i].b); a[i].c=ju(x[a[i].a],y[a[i].a],x[a[i].b],y[a[i].b]); ans+=a[i].c; } sort(a+1,a+1+m,cmp); fo(i,1,m){ int u=gf(a[i].a),v=gf(a[i].b); if(u!=v){ ans1+=a[i].c; f[v]=u; } } ans=ans-ans1; printf("%.4lf\n",ans); }
相关文章推荐
- JZOJsenior4740.【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
- JZOJ 4740 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划
- JZOJ4740. 【雅礼联考GDOI2017模拟9.2】Zjr506的捕猫计划(2017.8B组)
- 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划
- 2017.08.19【NOIP提高组】模拟赛B组 【雅礼联考GDOI2017模拟】Zjr506的捕猫计划
- JZOJ4739. 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论(2017.8B组)
- 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
- 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
- JZOJ 4739 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
- JZOJ4739 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论 莫队加并查集
- 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论
- 【jzoj5341】【NOIP2017模拟9.2A组】【密州盛宴】
- 【省选专题一】图论 jzoj 3936. 【GDOI2015模拟11.22】假期计划 spfa
- 同余【NOIP2016提高A组模拟9.2】
- 在ASP.NET中模拟Windows服务运行计划任务
- 【NOI2014模拟7.11】【WC2008游览计划加强】挖宝藏
- 【模拟】津津的储蓄计划
- JZOJ4760【雅礼联考GDOI2017模拟9.4】同桌的你 环套树拆边DP
- [模拟][哈希]刷题计划
- 【JZOJ 4309】【NOIP2015模拟11.4】刷题计划 刷题计划