码迷,mamicode.com
首页 > 其他好文 > 详细

带权中位数

时间:2019-12-31 18:46:42      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:code   技术员   世界   led   决定   增加   sample   联系   country   

话说在3085年,外星人打算来入侵地球,这个消息被我国的情报部门秘密截获,于是便打算联系世界各个国家,一
起研究商量对策。由于每个国家所需派的技术员人数不同,所以目前无法决定到底要在哪个国家设置个研究所进行
研究,幸运的是所有国家都在一条直线上,现在知道每个国家与我国的距离和该国的研究员人数。请你为他们决定
一下到底在那个国家建立研究所可以使所有研究员集中到该国的费用最小。

Input

输入文件每一行描述一个国家的信息。
首先是该国派出的技术员人数,紧跟着的是这个城市相对于我国的距离,最后是国家的名称。
国家数不大于5000

Output

输出文件只需要一行,即研究所设定的国家名称。

Sample Input

7 9289 JAPAN
5 8523 AMERICA
3 5184 CHINA
8 2213 VIJOS
10 0 DDS

Sample Output

VIJOS


sol:本题每个点增加了人数,即带权中位数。
 1 #include<iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 const int maxn = 5010;
 6 struct Country
 7 {
 8   double p, dis;
 9   string name;
10   bool operator < (const Country& a) const
11   {
12     return dis < a.dis;
13   }
14 }C[maxn];
15 int n = 0;double sum=0,ans=0;
16 int main()
17 {
18   while(cin >> C[n].p >> C[n].dis >> C[n].name)
19   {
20       sum+=C[n].p;
21     n++;
22   }   
23   sum/=2; sum++; 
24   sort(C, C + n);
25   for(int i=0;i<n;i++)
26     {
27         ans+=C[i].p;
28         if (ans>=sum) 
29         {
30             cout<<C[i].name;
31             return 0;
32         }
33     }
34 }

带权中位数

标签:code   技术员   世界   led   决定   增加   sample   联系   country   

原文地址:https://www.cnblogs.com/cutepota/p/12126278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!