Hdu 3694 Fermat Point in Quadrangle(三分)
来源:互联网 发布:清华大学研究生 知乎 编辑:程序博客网 时间:2024/05/18 15:06
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3694
思路:三分竟然能水过。。。。感觉不是很对。。。。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const double eps=1e-7;struct Node{ double x,y;};Node a[5];double minx,maxx,miny,maxy;double dist(double x,double y){ double sum=0; for(int i=0;i<4;i++) sum+=sqrt((a[i].x-x)*(a[i].x-x)+(a[i].y-y)*(a[i].y-y)); return sum;}double checky(double x){ double ly,ry,midy,midmidy; ly=miny,ry=maxy,midy=(ly+ry)/2.0; while(ry-ly>eps) { midy=(ly+ry)/2.0; midmidy=(midy+ry)/2.0; if(dist(x,midy)<dist(x,midmidy)) ry=midmidy; else ly=midy; } return dist(x,midy);}int main(){ while(scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&a[0].x,&a[0].y,&a[1].x,&a[1].y,&a[2].x,&a[2].y,&a[3].x,&a[3].y)==8) { if(a[0].x<0) break; minx=a[0].x,maxx=a[0].x; miny=a[0].y,maxy=a[0].y; for(int i=0;i<4;i++) { minx=min(minx,a[i].x); maxx=max(maxx,a[i].x); miny=min(miny,a[i].y); maxy=max(maxy,a[i].y); } double lx,rx,midx,midmidx; lx=minx,rx=maxx,midx=(lx+rx)/2.0; while(rx-lx>eps) { midx=(lx+rx)/2.0; midmidx=(midx+rx)/2.0; if(checky(midx)<checky(midmidx)) rx=midmidx; else lx=midx; // cout<<midx<<endl; } //cout<<midx<<endl; printf("%.4f\n",checky(midx)); } return 0;}
0 0
- Hdu 3694 Fermat Point in Quadrangle(三分)
- hdu 3694 Fermat Point in Quadrangle
- hdu 3694 Fermat Point in Quadrangle (数学)
- HDU 3694Fermat Point in Quadrangle(三分 不过网上大多是费马点的题解)
- poj 3990 Fermat Point in Quadrangle / hdu 3694
- HDU 3694 Fermat Point in Quadrangle(四边形的费马点)
- HDU 3694 Fermat Point in Quadrangle (数学-费马点)
- HDU 3694 Fermat Point in Quadrangle (数学-费马点)
- HDOJ 3694 Fermat Point in Quadrangle
- HDU 3694 Fermat Point in Quadrangle (费马定理求四边形的费马点)
- HDU 3694 Fermat Point in Quadrangle (计算几何- 四边形的费马点)
- hdu3694 Fermat Point in Quadrangle 费马点
- 2010 Asia Fuzhou Regional Contest HDOJ 3694 Fermat Point in Quadrangle
- poj 3990 Fermat Point in Quadrangle 凸包和费马点
- HDU3694 Fermat Point in Quadrangle 多边形费马点结论
- Fermat Point in Quadrangle POJ 3990 四边形的费马点 数学
- HDU3694Fermat Point in Quadrangle
- UVALive 5102 Fermat Point in Quadrangle 极角排序+找距离二维坐标4个点最近的点
- MySQL笔记-数据库约束条件
- 分类的线性方法
- 【DRP】——servlet
- UGUI之Text对齐至格子
- Javascript算法练习(七)
- Hdu 3694 Fermat Point in Quadrangle(三分)
- hdu 3966 Aragorn's Story 树链剖分 bfs实现(不知道为什么会RE)
- linphone-PresenceNoteImpl文件对应的JNI层文件分析
- 数据查看表结构的三种方式
- Unity触摸操作
- 量化分析师的Python日记【第4天:一大波金融Library来袭之scipy篇】
- 或许,我渐渐懂了父亲
- ByteBuffer的心得
- Linux下的C语言学习笔记(3)