题意:n个人,都要去參加活动,每一个人都有所在位置xi和Wi,每一个人没走S km,就会产生S^3*Wi的“不舒适度”,求在何位置举办活动才干使全部人的“不舒适度”之和最小,并求最小值。

思路:首先能够得出最后距离之和的表达式最多仅仅有两个极点,

更进一步仅仅有一个极点,否则无最小值。

那么我们就可用三分法或者二分法求解。即对原函数三分或对导数二分就可以。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<map>
#include<set>
#define eps 1e-6
#define LL long long
#define pii pair<int,int>
using namespace std; const int maxn = 100000+100;
//const int INF = 0x3f3f3f3f;
double w[maxn], x[maxn];
int n; double fx(double x0) {
double ans = 0;
for(int i = 0; i < n; i++) {
ans += pow(fabs(x[i]-x0), 3)*w[i];
}
return ans;
} double find(double L, double R) {
for(int i = 0; i < 30; i++) {
double midl = L+(R-L)/3, midr = L+(R-L)*2/3;
if(fx(midl) <= fx(midr)) R = midr;
else L = midl;
}
return R;
} int main() {
// freopen("input.txt", "r", stdin);
int T; cin >> T;
int kase = 0;
while(T--) {
cin >> n;
double minp = 1000000, maxp = -1000000;
for(int i = 0; i < n; i++) {
scanf("%lf%lf", &x[i], &w[i]);
minp = min(minp, x[i]);
maxp = max(maxp, x[i]);
}
// cout << fx(0) << endl;
printf("Case #%d: %d\n", ++kase, (int)(fx(find(minp, maxp))+0.5));
}
return 0;
}


HDU 4355 Party All the Time(三分|二分)的更多相关文章

  1. codeforces 782B The Meeting Place Cannot Be Changed+hdu 4355+hdu 2438 (三分)

                                                                   B. The Meeting Place Cannot Be Change ...

  2. HDU 2298 Toxophily(公式/三分+二分)

    Toxophily Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. HDU 2254 奥运(矩阵高速幂+二分等比序列求和)

    HDU 2254 奥运(矩阵高速幂+二分等比序列求和) ACM 题目地址:HDU 2254 奥运 题意:  中问题不解释. 分析:  依据floyd的算法,矩阵的k次方表示这个矩阵走了k步.  所以k ...

  4. HDU 4355 Party All the Time (三分求极值)

    题意:给定x轴上有n个点,每一个点都有一个权值,让在x轴上选一个点,求出各点到这个点的距离的三次方乘以权值最小. 析:首先一开始我根本不会三分,也并没有看出来这是一个三分的题目的,学长说这是一个三分的 ...

  5. Toxophily HDU - 2298 三分+二分

    代码+解析: 1 //题意: 2 //有一个大炮在(0,0)位置,为你可不可以把炮弹射到(x,y)这个位置 3 //题目给你炮弹初始速度,让你求能不能找出来一个炮弹射出时角度满足题意 4 //题解: ...

  6. hdu 4355 Party All the Time(三分搜索)

    Problem Description In the Dark forest, there is a Fairy kingdom where all the spirits will go toget ...

  7. HDU 4355——Party All the Time——————【三分求最小和】

    Party All the Time Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  8. HDU 4355:Party All the Time(三分模板)

    Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...

  9. HDU 2236:无题II(二分搜索+二分匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2236 题意:中文题意. 思路:先找出最大和最小值,然后二分差值,对于每一个差值从下界开始枚举判断能不能二分匹配. ...

随机推荐

  1. C#中var、int、object性能比较(已修正)

    var关键字是.net3.5推出的关键字,主要是让编译器自动推断并判断变量类型,类似javascript中的var. 在使用一些性能优化软件时,在代码优化时,我发现不管定义什么类型的变量,变量的类型都 ...

  2. order by 对null的处理

    [Oracle 结论] order by colum asc 时,null默认被放在最后order by colum desc 时,null默认被放在最前nulls first 时,强制null放在最 ...

  3. post方式的数据抓取

    public static String sendPost(String url, String param) {        PrintWriter out = null;        Buff ...

  4. HDFS设计思想

    HDFS设计思想 DataNode:用来在磁盘上存储数据 HDFS  数据存储单元( block ) 1 文件被切分成固定大小的数据block块 •默认数据块大小为 64MB(hadoop1.x版本6 ...

  5. css 三列布局

    前面的话 前面已经介绍过单列定宽单列自适应和两列自适应的两列布局.本文介绍三列布局,分为两侧定宽中间自适应.两列定宽一侧自适应.中间定宽两侧自适应.一侧定宽两列自适应和三列自适应这五种情况 两侧定宽中 ...

  6. mac 安装 java 配置

    在mac电脑上开发java,需要配置java环境变量,mac不同于windows系统.不过呢,配置流程也相对简单. 安装jdk 首先查看,电脑上是否装了jdk. 在终端输入  java -versio ...

  7. MYSQL重复记录排除法处理方式

    SELECT tmp.user_id, tmp.course_id, tmp.type, tmp.expire_time, @rownum := @rownum + 1, IF ( @course_i ...

  8. Python 使用cx_freeze 生成exe文件【转】

    Python 使用cx_freeze 生成exe文件   在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller.py2exe恐怕是三 ...

  9. 2010年最佳jQuery插件

    原文发布时间为:2011-01-19 -- 来源于本人的百度文章 [由搬家工具导入] WDL的作者从大量的优秀jQuery插件精心筛选出一些对Web Designers有帮助的和具备非常不错的视觉效果 ...

  10. [LeetCode] Binary Search Tree Iterator 深度搜索

    Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ro ...