BIT1035 远古石碑
来源:互联网 发布:特种部队匕首知乎 编辑:程序博客网 时间:2024/06/02 07:46
这题调了N久啊有木有,交到hdu都AC了的代码,在BIT就是WA,我调了三个小时了有木有
问题:
已知多边形的各点的坐标
计算一个多边形的重心的坐标,多边形的质量分布均匀
按逆时针顺序给出各个点的坐标
如图
将多边形作如图切割,红点是各个三角形的重心,连起来就是另一个多边形
将各个三角形看成一个点,即整个三角形的重量都集中在一个点上
然后求各个重心所构成的多边形的重心
例如,各个重心的坐标为(x1,y2)(x2,y2)...(xn,yn)
各个重心的重量为w1,w2,,,,,wn
多边形的重心为X,Y
X=(x1*w1+x2*w2+....+xn*wn)/n
Y=(y1*w1+y2*w2+.....+yn*wn)/n
接下来上代码
#include<iostream>#include<algorithm>#include<cstdio>using namespace std;class point//坐标{public:double x,y;};class Vector//向量{public:double x,y;double cross(Vector a)//叉积 { return x*a.y-a.x*y; } };Vector operator-(point a,point b){Vector res;res.x=a.x-b.x;res.y=a.y-b.y;return res;}point CalcCenter(point a,point b,point c){point res;res.x=(a.x+b.x+c.x);res.y=(a.y+b.y+c.y);return res;}int main(){int n;while (~scanf("%d",&n)){point ans;ans.x=0;ans.y=0;double sumWeight=0;point a,b,c;scanf("%lf %lf",&a.x,&a.y);scanf("%lf %lf",&b.x,&b.y);scanf("%lf %lf",&c.x,&c.y);Vector t1,t2;t1=b-a;t2=c-a;point p=CalcCenter(a,b,c);double area=t1.cross(t2);ans.x+=p.x*area;ans.y+=p.y*area;sumWeight+=area;for (int i = 3; i < n; i++){point temp;scanf("%lf %lf",&temp.x,&temp.y);t1=t2;t2=temp-a;b=c;c=temp;p=CalcCenter(a,b,c);area=t1.cross(t2);ans.x+=area*p.x;ans.y+=area*p.y;sumWeight+=area;}ans.x/=sumWeight;ans.y/=sumWeight;printf("%.2lf %.2lf\n",ans.x/3+0.00000001,ans.y/3+0.00000001);//不加这个0.00000000001就会出现输出-0.0的情况,在hdu可以ac,在bit就wa了}return 0;}
- BIT1035 远古石碑
- 2013寒假练习 1035 远古石碑
- 远古程序员
- 太阳系的罗塞塔石碑
- 乌龟驼石碑
- 罗塞塔石碑安装失败
- 罗塞塔石碑1141问题
- 破解石碑 (动态规划)
- 破解石碑(区间动规)
- 来自远古的感动
- 远古级的历史
- 远古人吗?
- 远古的徘徊
- DNF真远古攻略
- 远古网络电视台系统
- 罗塞塔石碑(Rosetta Stone)安装指南
- 【罗塞塔石碑】—My Lover(One.iso)
- 【罗塞塔石碑】—My Lover(Two.iso)
- PHP-FPM进程CPU 100%的原因及解决方案
- 热烈庆祝5kcms-k1成功发布
- spring security简单demo .
- VMware 给虚拟机上的系统扩充硬盘
- ubuntu上修改mysql默认字符编码出现的Job failed to start解决方法
- BIT1035 远古石碑
- 比较VC和Delphi
- libgdx 学习笔记(1)
- 利用LinkedBlockingQueue实现生产者-消费者模式
- strus2 配置详解
- java.lang.NoClassDefFoundError: javax/persistence/EntityListeners解决
- JasperReport和iReport的资源
- java.lang.UnsupportedClassVersionError: Bad version number in .class file异常 .
- 一些下载网站