zoukankan      html  css  js  c++  java
  • vijos 1225 拯救世界-紧急集合

        这是道带权中位数的题,自己一想好像暑假的时候在 noi-openjudge 那个网站写题的时候看过类似的,那个时候的我蒟蒻, 不知道怎么办? 现在重新想起了这一类题,找个时间攻一下吧!毕竟这道题不难, (只要从左往右扫一次,和从右往左扫一次,我再一次可耻地看了题解),思考了一下二维的情况,应该不难,只是把x坐标和y坐标分开而已,加油!

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #define rep(i,j,k) for(int i = j; i <= k; i++)
     5 #define down(i,j,k) for(int i = j; i >= k; i--)
     6 using namespace std;
     7 
     8 struct node{
     9 double lc, lp, rc, rp, dist, s, p;
    10 bool operator < (const node& rhs ) const {
    11     return dist < rhs.dist;
    12 }
    13 string name;
    14 } c[6000];
    15 
    16 int main()
    17 {
    18     int n = 0, ans = 0;
    19     while( cin>>c[n].p>>c[n].dist>>c[n].name ){
    20         n++;
    21     }
    22     sort(c,c+n);
    23     c[0].lp = c[0].p, c[0].lc = 0, c[n-1].rc = 0, c[n-1].rp = c[n-1].p;
    24     rep(i,1,n-1){
    25         c[i].lp = c[i-1].lp + c[i].p;
    26         c[i].lc = c[i-1].lc + (c[i-1].lp * (c[i].dist - c[i-1].dist));
    27     }
    28     down(i,n-2,0){
    29         c[i].rp = c[i+1].rp + c[i].p;
    30         c[i].rc = c[i+1].rc + (c[i+1].rp * (c[i+1].dist - c[i].dist));
    31     
    32     }
    33     rep(i,1,n-1){
    34         if( c[i].lc + c[i].rc < c[ans].lc+ c[ans].rc ) ans =i;
    35     }
    36     cout<<c[ans].name<<endl;
    37     return 0;
    38 }
  • 相关阅读:
    poj 3264 Balanced Lineup
    poj 2762 Going from u to v or from v to u?
    hdu 3671 Boonie and Clyde
    zoj 3195 Design the city
    poj 1523 SPF
    Codeforces Polo the Penguin and Matrix
    MVC原理的简述(转)
    C#访问权限修饰符
    XML Schema介绍
    Sql批量删除/插入
  • 原文地址:https://www.cnblogs.com/83131yyl/p/5094353.html
Copyright © 2011-2022 走看看