zoukankan      html  css  js  c++  java
  • hdu 4355 Party All the Time(三分)

    题目链接:hdu 4355 Party All the Time

    题意:

    有n个人,在一个一维的坐标轴上,现在让他们聚在一起。

    每个人移动一段距离会产生一个 不开心值=S3*W,现在问你最小的全部加起来的不开心值是多少。

    题解:

    目标函数是一个凸函数,直接上三分就行了。

     1 #include<bits/stdc++.h>
     2 #define F(i,a,b) for(int i=a;i<=b;i++)
     3 using namespace std;
     4 typedef pair<double,double>P;
     5 const int N=1e5+7;
     6 int t,n,cas;
     7 P a[N];
     8 
     9 double check(double mid)
    10 {
    11     double ans=0;
    12     F(i,1,n)
    13     {
    14         double tmp=abs(a[i].first-mid);
    15         ans+=tmp*tmp*tmp*a[i].second;
    16     }
    17     return ans;
    18 }
    19 
    20 int main()
    21 {
    22     scanf("%d",&t);
    23     while(t--)
    24     {
    25         scanf("%d",&n);
    26         F(i,1,n)scanf("%lf%lf",&a[i].first,&a[i].second);
    27         double l=0,r=1e6;
    28         F(i,1,100)
    29         {
    30             double mid=(l+r)/2,mmid=(mid+r)/2;
    31             if(check(mid)>check(mmid))l=mid;else r=mmid;
    32         }
    33         printf("Case #%d: %.0f
    ",++cas,check(l));
    34     }
    35     return 0;
    36 }
    View Code
  • 相关阅读:
    C# 正则表达式
    C# 预处理命令
    C# System.Collections
    C#文件流 System.IO和对文件的读写操作
    c# 网站发布
    C# 数据库
    c# 数据存储过程 存储函数
    insert 插入
    SVN远程管理
    【Win】印象笔记快捷键
  • 原文地址:https://www.cnblogs.com/bin-gege/p/6916172.html
Copyright © 2011-2022 走看看