博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2826 An Easy Problem?!
阅读量:5962 次
发布时间:2019-06-19

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

一个对精度要求比较高的题。

如果两个线段没交点,那么肯定是0。有交点也不一定就有水,水可以进不来。

最后答案要加一个eps,防止出现-0.00的答案

#include
#include
#include
#include
#include
#include
#include
using namespace std;struct point{ double x; double y; point(){} point(double a,double b){x=a;y=b;}};struct Line{ double a,b,c;}line1,line2;double a,b,c,d,e,f,g,h;vector
v;int T;const double eps=1e-8;#define zero(x)(((x)>0?(x):(-x))
eps;}int dot_online_in(point p,point l1,point l2){ return zero(xmult(p,l1,l2))&&(l1.x-p.x)*(l2.x-p.x)
jiao.y&&fabs(p1.y-jiao.y)>eps) v.push_back(p1); if(p2.y>jiao.y&&fabs(p2.y-jiao.y)>eps) v.push_back(p2); if(p3.y>jiao.y&&fabs(p3.y-jiao.y)>eps) v.push_back(p3); if(p4.y>jiao.y&&fabs(p4.y-jiao.y)>eps) v.push_back(p4); if(v.size()==2) { if((v[0].x<=jiao.x&&v[1].x>=jiao.x)||(v[1].x<=jiao.x&&v[0].x>=jiao.x)) { if(v[0].y>v[1].y) swap(v[0],v[1]); point jiao2=jiaodian(v[0].x,v[0].y,20000,v[0].y,jiao.x,jiao.y,v[1].x,v[1].y); ans=Area(jiao,jiao2,v[0]); } else { if(fabs((v[0].y-jiao.y)/(v[0].x-jiao.x))
=fabs(v[1].x-jiao.x)){} else { if(v[0].y>v[1].y) swap(v[0],v[1]); point jiao2=jiaodian(v[1].x,v[1].y,jiao.x,jiao.y,v[0].x,v[0].y,20000,v[0].y); ans=Area(jiao,jiao2,v[0]); } } } } printf("%.2f\n",ans+eps); } return 0;}

 

转载于:https://www.cnblogs.com/zufezzt/p/5153185.html

你可能感兴趣的文章
主流原型工具可用性测试横向比较
查看>>
我的友情链接
查看>>
Guava——使用Preconditions做参数校验
查看>>
iSCSI存储用作Proxmox VE的LVM共享存储
查看>>
Sonnet Suite Pro v11.52-ISO 1CD(三维高频电子设计)
查看>>
Fedora Core 6 刷新率超出范围解决方法
查看>>
linux网络
查看>>
我的友情链接
查看>>
linux 系统调优步骤 例
查看>>
显式方法与隐式方法
查看>>
Android防火墙+流量统计代码
查看>>
通知中心
查看>>
我的友情链接
查看>>
MVC中的三个模块
查看>>
Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1
查看>>
oracle 常用命令大汇总
查看>>
2012年春运火车票电话和网上订票技巧、攻略
查看>>
运维工程师的职责和前景
查看>>
Gcc编译流程解析
查看>>
根据request获取请求路径
查看>>