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 }
  • 相关阅读:
    进入javascript的学习了
    详解CSS display:inline-block的应用(转)
    CSS学习第一天
    HTML小结~
    表单提交中的input、button、submit的区别(转来学习)
    第二天又是充实的一天
    java开班啦~步入程序员的第一步
    sql 两大类 DDL数据定义语言 和DCL数据控制语言
    单行函数(日期函数)
    单行函数
  • 原文地址:https://www.cnblogs.com/83131yyl/p/5094353.html
Copyright © 2011-2022 走看看