zoukankan      html  css  js  c++  java
  • hdu 1115 Lifting the Stone (求重心)

    #include<iostream>
    #include<iomanip>
    using namespace std;
    typedef struct point
    {
        double x,y;
        point(double x=0.0,double y=0.0):x(x),y(y){}
    }vector;
    point p[1000010],c;
    vector operator - (point a,point b) {return vector(a.x-b.x,a.y-b.y);}
    point operator + (point a,point b) {return point(a.x+b.x,a.y+b.y);}
    point operator / (point a,int b) {return point(a.x/b,a.y/b);}
    point operator * (point a,double b) {return point(a.x*b,a.y*b);}
    double cross(vector a,vector b)
    {
        return a.x*b.y-a.y*b.x;
    }
    double area2(point a,point b,point c) {return cross(b-a,c-a);}
    int main()
    {
        int i,t,n;
        double s,m;
        point tt;
        cin>>t;
        while(t--)
        {
            cin>>n;
            s=0.0;tt.x=0.0;tt.y=0.0;
            for(i=0;i<n;i++)
            {
                cin>>p[i].x>>p[i].y;
            }
            for(i=2;i<n;i++)
            {
                m=0.5*area2(p[0],p[i-1],p[i]);s+=m; //三角形的质量与面积成正比
                c=(p[0]+p[i]+p[i-1])/3; //三角形的重心
                tt=tt+(c*m);
            }
            tt=tt/s;
            cout<<fixed<<setprecision(2)<<tt.x<<" "<<fixed<<setprecision(2)<<tt.y<<endl;
        }
        return 0;
    }
    

  • 相关阅读:
    POJ 3071 概率DP
    BZOJ 2427 /HAOI 2010 软件安装 tarjan缩点+树形DP
    POJ 1155 树形DP
    POJ 3252 组合数学?
    POJ 3641 快速幂
    POJ 3180 Tarjan
    POJ 3185 DFS
    POJ 3260 DP
    POJ 2392 DP
    99. Recover Binary Search Tree
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218192.html
Copyright © 2011-2022 走看看