zoukankan      html  css  js  c++  java
  • 数学 + 带权中位数

    Telecasting station 

    Problem's Link


     

    Mean: 

    百慕大的每一座城市都坐落在一维直线上,这个国家的政府决定建造一个新的广播电视台。

    经过了许多次试验后,百慕大的科学家们提出了一个结论:在每座城市的不满意度等于这座城市的市民数与这座城市与广播电视台的距离的乘积.

    你需要找到这个一维直线上的一点来建造广播电视台,使得所有城市的不满意度的和最小.

    analyse:

    个人觉得应该是加权平均数,然而却是求中位数.

    可以这样想:随便挑一个点作为station,左右移动一下看看移动之后能够减少多少不满同时又会增加多少不满就可以做了.

    Time complexity: O(N)

     

    view code

    /**
    * -----------------------------------------------------------------
    * Copyright (c) 2016 crazyacking.All rights reserved.
    * -----------------------------------------------------------------
    *       Author: crazyacking
    *       Date  : 2016-01-07-09.46
    */
    #include <queue>
    #include <cstdio>
    #include <set>
    #include <string>
    #include <stack>
    #include <cmath>
    #include <climits>
    #include <map>
    #include <cstdlib>
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    typedef long long(LL);
    typedef unsigned long long(ULL);
    const double eps(1e-8);

    const int MAXN=15010;
    struct N
    {
       double x;
       int p;
    } a[MAXN];
    int b[MAXN];

    int cmp(N a,N b)
    {
       return a.x<b.x;
    }
    int main()
    {
       int n;
       while(scanf("%d",&n)!=EOF)
       {
           memset(b,0,sizeof(b));
           for(int i=0; i<n; i++)
               scanf("%d%d",&a[i].x,&a[i].p);
           sort(a,a+n,cmp);
           int s=0;
           for(int i=0; i<n; i++)
           {
               s+=a[i].p;
               b[i]=s;
           }
           int mid=s/2,w;
           for(int i=0; i<n; i++)
           {
               if(b[i]>=mid)
               {
                   w=i;
                   break;
               }
           }
           printf("%d ",a[w].x);
       }
       return 0;
    }
  • 相关阅读:
    修正MYSQL错误数据的一个存储过程
    解决教学平台上文件中存在无扩展名BUG的办法
    使用C#解析XMIND文件格式
    ASPOSE的示例下载地址
    Https所涉及名词及相关后缀名解释
    Https单向认证和双向认证介绍
    转Postman请求Https接口
    About the Apple Captive Network Assistant
    python之numpy的基本使用
    Python Numpy 数组的初始化和基本操作
  • 原文地址:https://www.cnblogs.com/crazyacking/p/5109010.html
Copyright © 2011-2022 走看看