题目链接:https://vjudge.net/problem/Aizu-2224

题目大意:

  先给出 N 个点的坐标(x,y),这N个点之间有且只有M条边,接下来给出 M 条边的两端点,每条边对应的边权就是两端点的距离,断开一条边所需的花费就是这条边的边权。现在我们要断开一些边,使得剩余的边没有办法围成圈,但又要使得总花费最小。求所需的最小花费。

解题思路:

  要是剩余的边没有办法围成圈,那么其实就是想要让剩余的边能够组成一棵树,所需的总花费其实就是除了这棵树以外的边的所有边权,所以我们让这颗树的权值最大,那么总花费(= 所有边的边权 - 树的总权值)就会最小。利用正难则反的思路,我们把这个问题转变成一道求最大生成树裸题。

  Danger ! 记得考虑重边!

  Danger!数组要开得足够大!

AC代码:

 #include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn=+;
int fa[maxn];
struct edge{
int u,v;
double cost;
}es[maxn*maxn];
struct node{
int x,y;
}cord[maxn];
bool cmp(const edge &a,const edge &b){
return a.cost>b.cost;
}
double cal(node a,node b){
return sqrt((double)(a.x-b.x)*(a.x-b.x)+(double)(a.y-b.y)*(a.y-b.y));
}
int finds(int rt){
if(fa[rt]==rt) return rt;
return fa[rt]=finds(fa[rt]);
}
bool same(int a,int b){
return finds(a)==finds(b);
}
int main(){
int N,M;
double tot=0.0;
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++) scanf("%d%d",&cord[i].x,&cord[i].y);
for(int i=;i<M;i++){
scanf("%d%d",&es[i].u,&es[i].v);
double c=cal(cord[es[i].u],cord[es[i].v]);
es[i].cost+=c;
tot+=c;
}
sort(es,es+M,cmp);
for(int i=;i<=N;i++) fa[i]=i;
double res=0.0;
for(int i=;i<M;i++){
edge e=es[i];
if(!same(e.u,e.v)){
int t1=finds(e.u),t2=finds(e.v);
fa[t1]=t2;
res+=e.cost;
}
}
printf("%lf\n",tot-res);
return ;
}

Aizu - 2224的更多相关文章

  1. Save your cats Aizu - 2224

    Nicholas Y. Alford was a cat lover. He had a garden in a village and kept many cats in his garden. T ...

  2. UPC 2224 Boring Counting (离线线段树,统计区间[l,r]之间大小在[A,B]中的数的个数)

    题目链接:http://acm.upc.edu.cn/problem.php?id=2224 题意:给出n个数pi,和m个查询,每个查询给出l,r,a,b,让你求在区间l~r之间的pi的个数(A< ...

  3. UPC 2224 Boring Counting ★(山东省第四届ACM程序设计竞赛 tag:线段树)

    [题意]给定一个长度为N的数列,M个询问区间[L,R]内大于等于A小于等于B的数的个数. [题目链接]http://acm.upc.edu.cn/problem.php?id=2224 省赛的时候脑抽 ...

  4. Fastjson 1.2.22-24 反序列化漏洞分析

    目录 0x00 废话 0x01 简单介绍 FastJson的简单使用 0x02 原理分析 分析POC 调试分析 0x03 复现过程 0x04 参考文章 0x00 废话 balabala 开始 0x01 ...

  5. Aizu 0525 Osenbei 搜索 A

    Aizu 0525 Osenbei https://vjudge.net/problem/Aizu-0525 题目: IOI製菓では,創業以来の伝統の製法で煎餅(せんべい)を焼いている.この伝統の製法 ...

  6. UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)

    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...

  7. Aizu 2249 & cf 449B

    Aizu 2249 & cf 449B 1.Aizu - 2249 选的边肯定是最短路上的. 如果一个点有多个入度,取价值最小的. #include<bits/stdc++.h> ...

  8. Sliding Window - The Smallest Window II(AIZU) && Leetcode 76

    http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DSL_3_B For a given array a1,a2,a3,...,aNa1 ...

  9. FZU 2224 An exciting GCD problem(GCD种类预处理+树状数组维护)同hdu5869

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2224 同hdu5869 //#pragma comment(linker, "/STACK:1024 ...

随机推荐

  1. Android Studio常用配置

    目录 1. 主题颜色设置 2. Logcat颜色设置 3. 类注释 4. 编译器添加背景图 4.1 第一种方式 Background Image 4.2 第二种方式 Sexy Editor 5. 修改 ...

  2. js之 DOM与BOM

    JavaScript HTML DOM (文档对象模型)(Document Object Model) 什么是DOM? DOM是W3C标准. DOM定义了访问文档的标准: “W3C文档对象模型(DOM ...

  3. 【Linux常见命令】uname命令

    uname命令用于显示系统信息. uname可显示电脑以及操作系统的相关信息. 语法 uname [-amnrsv][--help][--version] 参数说明: -a或--all 显示全部的信息 ...

  4. innobackupex 出现Unrecognized character \x01; marked by

    centos 7.2 mysql 5.7.16 innobackupex version 2.4.6 [root@Devops-mysql-150-115 sh]# innobackupex --de ...

  5. 电子书下载:C# Database Basics

    下载: http://download.csdn.net/detail/maxwoods/4089269

  6. Android Room SQLite持久层框架

    原文链接 前言 Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷 APP可以缓存用 ...

  7. 实战-MySQL定时增量备份(2)

    概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了.所以要对我们的线上数 ...

  8. INTERVIEW #1

    一.数据对齐存储 在32位系统中:int占4Bytes,short占2Bytes,char占1Byte,加起来应该是7Bytes,但是下面这段代码输出却是8. #define _CRT_SECURE_ ...

  9. 背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 3

    1.ir- 不,向内 例词: irregular=ir(不)-regular(规则的)=不规则的 irrigate=ir(向内)-rigate(浇水)=灌溉 2. kilo- 千 例词: kilogr ...

  10. 一张图告诉你E-R图怎么画

    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. 它是描述现实世界关系概念模型的有效方法.是表示概 ...