题目名称 904. 约翰的电网
输入输出 fence3.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 12
题目来源 Gravatarsywgz 于2012-07-12加入
开放分组 全部用户
提交状态
分类标签
USACO 分治 搜索法 数值方法
分享题解
通过:7, 提交:55, 通过率:12.73%
Gravatarmikumikumi 100 0.088 s 0.32 MiB C++
Gravatar任杰 100 0.210 s 0.32 MiB C++
Gravatarcstdio 100 0.357 s 0.32 MiB C++
Gravatar喵喵喵 100 0.369 s 0.29 MiB C++
Gravatar喵喵喵 100 0.494 s 0.29 MiB C++
Gravatar喵喵喵 100 1.377 s 0.29 MiB C++
Gravatar喵喵喵 100 1.718 s 0.29 MiB C++
Gravatarcstdio 91 0.017 s 0.32 MiB C++
Gravatar喵喵喵 91 0.189 s 0.29 MiB C++
Gravatar喵喵喵 91 0.336 s 0.29 MiB C++
关于 约翰的电网 的近10条评论(全部评论)
真他喵的手残
Gravatarmikumikumi
2015-10-18 18:17 2楼
靠RP的一道题……
目标函数不一定单峰,因此每次划分的网格应当足够小。分成10*10会WA一组,13*13会WA两组,100*100就能AC。
代码中坐标*10再/10的部分是无用的,原先枚举中的残留未改回来而已
Gravatarcstdio
2013-11-14 20:58 1楼

904. 约翰的电网

★★   输入文件:fence3.in   输出文件:fence3.out   简单对比
时间限制:1 s   内存限制:128 MiB
USACO/fence3(译 by Felicia Crazy)

描述

农夫约翰已经决定建造电网。他已经把他的农田围成一些奇怪的形状,现在必须找出安放电源的最佳位置。

对于段电网都必须从电源拉出一条电线。电线可以穿过其他电网或者跨过其他电线。电线能够以任意角度铺设,从电源连接到一段电网的任意一点上(也就是,这段电网的端点上或者在其之间的任意一点上)。这里所说的“一段电网”指的是呈一条线段状的电网,并不是连在一起的几段电网。若几段电网连在一起,那么也要分别给这些电网提供电力。

已知所有的 F(1 <= F <= 150)段电网的位置(电网总是和坐标轴平行,并且端点的坐标总是整数,0 <= X,Y <= 100)。你的程序要计算连接电源和每段电网所需的电线的最小总长度,还有电源的最佳坐标。

电源的最佳坐标可能在农夫约翰的农田中的任何一个位置,并不一是整数。

PROGRAM NAME: fence3

INPUT FORMAT  (file fence3.in)

第一行包括 F ——电网的数量。
下面的 F 行每行包括两个 X,Y 对,表示这段电网的两个端点。

OUTPUT FORMAT(file fence3.out)

只有一行,输出三个浮点数,每个保留一位小数,相邻两个之间留一个空格。假定你的电脑的输出库会正确地对小数进行四舍五入。

这三个数是:

  • 电源最佳坐标的 X 值,
  • 电源最佳坐标的 Y 值,和
  • 需要的电线的总长度(要最小)。

SAMPLE INPUT (file fence3.in)

3
0 0 0 1
2 0 2 1
0 3 2 3

SAMPLE OUTPUT (file fence3.out)

1.0 1.6 3.7