• P1862输油管道问题


    P1862输油管道问题
    . . .
    .
    .
    -----------------
    .
    . .
    . . .
    图像大体是这样,是带权平均数问题,设答案是k,sigama(abs(yi-k*wi))最小,这里的wi是1而已,问题就退化成了中位数。按纵坐标排序,求中位数即可。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<algorithm>
     5 #include<cmath>
     6 #include<ctime>
     7 #include<cstring>
     8 #define inf 2147483647
     9 #define For(i,a,b) for(register long long i=a;i<=b;i++)
    10 #define p(a) putchar(a)
    11 #define g() getchar()
    12 //by war
    13 //2017.10.22
    14 using namespace std;
    15 struct node
    16 {
    17     long long x;
    18     long long y;
    19     bool operator<(const node &aa)const
    20     {
    21         return y<aa.y;
    22     }
    23 }a[10010];
    24 long long n;
    25 long long s;
    26 long long ans;
    27 void in(long long &x)
    28 {
    29     long long y=1;
    30     char c=g();x=0;
    31     while(c<'0'||c>'9')
    32     {
    33     if(c=='-')
    34     y=-1;
    35     c=g();
    36     }
    37     while(c<='9'&&c>='0')x=x*10+c-'0',c=g();
    38     x*=y;
    39 }
    40 void o(long long x)
    41 {
    42     if(x<0)
    43     {
    44         p('-');
    45         x=-x;
    46     }
    47     if(x>9)o(x/10);
    48     p(x%10+'0');
    49 }
    50 int main()
    51 {
    52     in(n);
    53     For(i,1,n)
    54     in(a[i].x),in(a[i].y);
    55     sort(a+1,a+n+1);
    56     s=a[(n+1)/2].y;
    57     For(i,1,n)
    58     ans+=abs(s-a[i].y);
    59     o(ans);
    60      return 0;
    61 }
  • 相关阅读:
    正则表达式学习
    由#pragma GCC diagnostic ignored "-Wdeprecated-declarations" 浅出
    Xcode调试
    多线程GCD 完整版
    [不定时更新-(进阶必看)我常去逛的iOS干货文章、blog等
    老程序自动安装更新程序
    fragment 学习
    Android常用的颜色列表 color.xml
    android的padding和margin的区别
    android shape的使用
  • 原文地址:https://www.cnblogs.com/war1111/p/7708552.html
Copyright © 2020-2023  润新知