zoukankan      html  css  js  c++  java
  • NJUST(夕阳下的奔跑)

    http://icpc.njust.edu.cn/Contest/36/H/

    id:xs2014team_164(833779)

    1.终点向量即斜率。

    2.数据范围是long long。

    3.细心推公式即可。

    ****************************************

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    const int maxn=110000;

    int n;
    long long x11,y11;
    long long sum[maxn],z[maxn];

    int find(long long x)
    {
        int l=1,r=n;
        while(l<=r)
        {
            int m=(l+r)/2;
            if(z[m]>=x)r=m-1;
            else l=m+1;
        }
        return l;
    }

    int main()
    {
        while(~scanf("%lld%lld",&x11,&y11))
        {
            double num=sqrt(1.0*(x11*x11)+1.0*(y11*y11));
            scanf("%d",&n);
            for(int i=1;i<=n;i++)
            {
                long long a,b;
                scanf("%lld%lld",&a,&b);
                z[i]=y11*a-x11*b;
            }
            sort(z+1,z+1+n);
            sum[0]=0.0;
            for(int i=1;i<=n;i++)sum[i]=sum[i-1]+z[i];
            int m;
            scanf("%d",&m);
            for(int i=1;i<=m;i++)
            {
                long long x0,y0;
                scanf("%lld%lld",&x0,&y0);
                long long c=x11*y0-y11*x0;
                int p=find(-c);
                printf("%.2lf ",(sum[n]-2*sum[p-1]+(n-2*p+2)*c)/num);
            }
        }
        return 0;
    }

    ****************************************

  • 相关阅读:
    JS站点
    1011 World Cup Betting (20分)
    1007 Maximum Subsequence Sum (25分)(动态规划DP)
    1006 Sign In and Sign Out (25分)
    1005 Spell It Right (20分)
    1004 Counting Leaves (30分)(DFS)
    1003 Emergency (25分)(Dijkstra算法)
    1002 A+B for Polynomials (25分)
    1001 A+B Format (20分)
    canvas
  • 原文地址:https://www.cnblogs.com/MobileRobot/p/3774383.html
Copyright © 2011-2022 走看看