问题 H: 小k的简单问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 107  解决: 57
[提交] [状态] [命题人:jsu_admin]

题目描述

地图上有n个村庄,小k每个月需要往每个村庄运送数量不等的粮食,运送粮食到任意一个村庄需要消耗的费用为距离的平方乘以粮食的重量,现在小k打算在地图上建立粮食基地,请问将基地建在哪个地方才能让小k每个月消耗的费用最少?

输入

第一行包含一个整数 T,表示有 T组测试数据。
接下来依次描述 T 组测试数据。对于每组测试数据:
第一行为整数 n,表示有n个村庄。
接下来 n 行,每行三个整数x,y,v,前两整数个为村庄的坐标,后面一个整数为该村庄每个月需要的粮食重量。
0<T<20,0<n<20, -1000<=x,y<=1000,0<v<100

 

输出

小k建立粮食基地的坐标(保留两位小数)

样例输入 Copy

1
3
167 -100 44
78 262 21
-245 -27 1

样例输出 Copy

132.44 16.29

已知每个村庄的位置 xi,yi,以及需要运送的粮食重量 vi,设基地的位置在 x,y,那么小 k 运送粮食到任意一个村庄消耗的费用为(x-xi)*(x-xi)*vi+(y-yi)*(y-yi)*vi,由此可只 x 坐 标和 y 坐标可以分开来算,将所有消耗相加起来得到一个关于 x 的方程,a*x*x-b*x+c, 可转化为由此可得出当 x = b/(2*a)时消耗最小,同理可得出 y 坐标的值。

 #include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn = ;
int main(){
int t;
double a[maxn],b[maxn],c[maxn];
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
double z=,x=,v=;
for(int i = ;i <=n;i++)
{
scanf("%lf%lf%lf",&a[i],&b[i],&c[i]);
z += a[i]*c[i];
x += b[i]*c[i];
v += c[i];
}
sort(a+,a+n+);
sort(b+,b+n+);
// double l_1 = a[n],r_1 = a[1];
// double l_2 = b[n],r_2 = b[1];
// double sum = 0;
// for(int i = 0;i < n;i++)
// {
// sum = sqrt((a[1]-a[i])*(a[1]-a[i])+(b[1]-b[i])*(b[1]-b[i]));
// }
// for(int i = 0;i<100;i++)
// {
// mid_1 = (l_1+r_1) / 2;
// mid_2 = (l_2+r_2) / 2;
// for(int i = 0;i<n;i++)
// double mid = sqrt((mid_1-a[i])*(mid_1-a[i])+(mid_2-b[i])*(mid_2-b[i]))
// if(mid < sum)
// {
// sum = mid;
//
// }
// } printf("%.2f %.2f\n",z/v,x/v);
}
}
 

问题 H: 小k的简单问题的更多相关文章

  1. FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  2. [51nod1457]小K vs. 竹子

    小K的花园种着n颗竹子(竹子是一种茎部中空并且长得又高又快的热带植物).此时,花园中第i颗竹子的高度是hi米,并且在每天结束的时候它生长ai米. 实际上,小K十分讨厌这些竹子.他曾经试图去砍光它们,但 ...

  3. 【BZOJ3436】小K的农场(差分约束)

    [BZOJ3436]小K的农场(差分约束) 题面 由于BZOJ巨慢无比,使用洛谷美滋滋 题解 傻逼差分约束题, 您要是不知道什么是差分约束 您就可以按下\(Ctrl+W\)了 #include< ...

  4. 51 nod 1456 小K的技术(强连通 + 并查集)

    1456 小K的技术 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题   苏塞克王国是世界上创新技术的领先国家,在王国中有n个城市 ...

  5. FFmpeg的H.264解码器源代码简单分析:环路滤波(Loop Filter)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  6. FFmpeg的H.264解码器源代码简单分析:熵解码(Entropy Decoding)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  7. FFmpeg的H.264解码器源代码简单分析:解析器(Parser)部分

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  8. BZOJ_3436_小K的农场_差分约束

    BZOJ_3436_小K的农场_差分约束 题意: 小K在MC里面建立很多很多的农场,总共n个,以至于他自己都忘记了每个农场中种植作物的具体数量了,他只记得 一些含糊的信息(共m个),以下列三种形式描述 ...

  9. NowCoder--牛客练习赛30 C_小K的疑惑

    题目链接 :牛客练习赛30 C_小K的疑惑 i j k 可以相同 而且 距离%2 只有 0 1两种情况 我们考虑 因为要 d(i j)=d(i k)=d(j k) 所以我们只能找 要么三个点 任意两个 ...

随机推荐

  1. python装饰器的简单理解

    如果你接触 Python 有一段时间了的话,想必你对 @ 符号一定不陌生了,没错 @ 符号就是装饰器的语法糖. 装饰器的使用方法很固定: 先定义一个装饰函数(帽子)(也可以用类.偏函数实现) 再定义你 ...

  2. 【python基础】集合方法汇总

    一.定义 用于存储一组无序的不重复的数据 二.特点 1. 集合是无序的 2.集合中的元素是不重复的, 唯一的 3.集合中存储的数据必须是不可变的数据类型 4.集合是可变的数据类型 三.语法 set1 ...

  3. __new__与__init__的区别

    __new__  : 控制对象的实例化过程 , 在__init__方法之前调用 __init__ : 对象实例化对象进行属性设置 class User: def __new__(cls, *args, ...

  4. Java并行

    序言 Java 有四种并行方式: 1.thread  使用“原汁原味”的裸线程 2.Executor (java 5 以后出现的) 3.Forkjoin 框架 (java 8 出现的) 4.Actor ...

  5. sh_09_格式化输出

    sh_09_格式化输出 # 定义字符串变量 name,输出 我的名字叫 小明,请多多关照! name = "大小明" print("我的名字叫 %s,请多多关照!&quo ...

  6. 特征提取算法(3)——SIFT特征提取算子

    目录: 前言 1.高斯尺度空间GSS 2.高斯差分DOG 用DoG检测特征点 GSS尺度选择 3.图像金字塔建立 用前一个octave中的倒数第三幅图像生成下一octave中的第一幅图像 每层octa ...

  7. 特征提取算法(2)——HOG特征提取算法

    histogram of oriented gradient(方向梯度直方图)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.H ...

  8. POJ 1432 Decoding Morse Sequences (DP)

    Decoding Morse Sequences 题目链接: http://acm.hust.edu.cn/vjudge/contest/129783#problem/D Description Be ...

  9. SpringBoot项目的前端+thymeleaf模板引擎

    SpringBoot项目创建之后,后台的框架是SpringMVC.但前端的resource和template目录都是空的.这个时候需要创建前台页面. 习惯上,我们会创建JSP,但是,SpringBoo ...

  10. int 和 字节 相互转换

    In [10]: n = 0xf1f2 In [11]: bin(n) Out[11]: '0b1111000111110010' In [12]: n.bit_length() Out[12]: 1 ...