博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【2011 Greater New York Regional 】Problem G: Rancher's Gift
阅读量:4629 次
发布时间:2019-06-09

本文共 2126 字,大约阅读时间需要 7 分钟。

计算几何的题目,很简单;

自己随手敲了个,纪念下!

1 #include
2 #include
3 using namespace std; 4 5 struct point 6 { 7 double x,y; 8 point(double x=0,double y=0):x(x),y(y) { } 9 } a,b,c,d;10 11 point midd(point a,point b)12 {13 return point((a.x+b.x)/2.0,(a.y+b.y)/2.0);14 }15 point operator + (point a,point b)16 {17 return point(a.x+b.x,a.y+b.y);18 }19 point operator - (point a,point b)20 {21 return point(a.x-b.x,a.y-b.y);22 }23 point operator * (point a,double p)24 {25 return point(a.x*p,a.y*p);26 }27 point operator / (point b,double p)28 {29 return point(a.x/p,a.y/p);30 }31 double cross(point a,point b)32 {33 return a.x*b.y-b.x*a.y;34 }35 point getlineintersection(point p,point v,point q,point w)36 {37 point u=p-q;38 double t=cross(w,u)/cross(v,w);39 return p+v*t;40 }41 double area(point a,point b,point c)42 {43 return cross(b-a,c-a)/2.0;44 }45 double dis(point a,point b)46 {47 return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));48 }49 double line(point a,point b,point c,point d)50 {51 return dis(a,b)+dis(b,c)+dis(c,d)+dis(d,a);52 }53 54 55 int main()56 {57 int t,ca;58 scanf("%d",&t);59 while(t--)60 {61 scanf("%d",&ca);62 printf("%d ",ca);63 a.x=0.0,a.y=0.0,b.y=0.0;64 scanf("%lf%lf%lf%lf%lf",&b.x,&c.x,&c.y,&d.x,&d.y);65 point dd=midd(a,b);66 point aa=midd(b,c);67 point cc=midd(a,d);68 point bb=midd(c,d);69 point aaa=getlineintersection(d,d-dd,a,a-aa);70 point bbb=getlineintersection(a,aa-a,b,bb-b);71 point ccc=getlineintersection(c,cc-c,b,bb-b);72 point ddd=getlineintersection(c,cc-c,d,dd-d);73 printf("%.3lf ",area(a,b,bbb)/160.0);74 printf("%.3lf ",area(b,c,ccc)/160.0);75 printf("%.3lf ",area(c,d,ddd)/160.0);76 printf("%.3lf ",area(d,a,aaa)/160.0);77 printf("%.3lf ",((area(ddd,aaa,bbb)+area(bbb,ccc,ddd))/160.0));78 printf("%.0lf\n",ceil(line(aaa,bbb,ccc,ddd)*16.5));79 }80 return 0;81 }
View Code

 

转载于:https://www.cnblogs.com/yours1103/p/3348661.html

你可能感兴趣的文章
hdu 1754
查看>>
51Nod-1276-岛屿的数量
查看>>
WebService 小实例
查看>>
工作要总分总
查看>>
最小编辑距离
查看>>
学习Sass之安装篇
查看>>
图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)
查看>>
Kingdom Rush 国王保卫战策略心得
查看>>
Django ManyToMany
查看>>
Asp.net笔记(1)
查看>>
20171103html5文档还没有看完!
查看>>
数据结构之二叉树排序(转载http://www.cnblogs.com/mcgrady/p/3280624.html)
查看>>
Cacti数据采集周期修改为一分钟一次的方法
查看>>
SVN服务器地址更换方法
查看>>
java操作数据库增删改查的小工具1--TxQueryRunner
查看>>
vs2010统计项目代码总行数
查看>>
delphi 一个时钟引发的事情
查看>>
JPEG和Variant的转换
查看>>
How to read very large text files fast
查看>>
Java读取.properties配置文件
查看>>