博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2826
阅读量:5154 次
发布时间:2019-06-13

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

太自闭了。。。明明很水的说。。。

有三种为0的情况。一种是有水平,一种是没交点。

第三种有点难想啊。就是下面那个板子被上面的挡住了,,雨水进不去。。。

关键是我翻了翻discuss找到了这种数据,,但是脑子短路了不知道怎么写。。。

我们只要把下面那个端点向上延长!看和上面的板子有没有交点就行了啊!还是看了kuangbin的代码受到的启发。。。

哇我是傻逼啊。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 typedef double db; 9 const db eps = 1e-6;10 const db pi = acos(-1);11 int sign(db k){
if(k>eps)return 1; else if(k<-eps)return -1;return 0;}12 int cmp(db k1,db k2){ return sign(k1-k2);}13 struct point{14 db x,y;15 point operator+(const point &k1)const { return point{k1.x+x,k1.y+y};}16 point operator - (const point &k1) const{
return (point){x-k1.x,y-k1.y};}17 point operator * (db k1) const{
return (point){x*k1,y*k1};}18 point operator / (db k1) const{
return (point){x/k1,y/k1};}19 db abs(){ return sqrt(x*x+y*y);}20 };21 db cross(point k1,point k2){ return k1.x*k2.y-k1.y*k2.x;}22 db dot(point k1,point k2){ return k1.x*k2.x+k1.y*k2.y;}23 int intersect(db l1,db r1,db l2,db r2){24 if (l1>r1) swap(l1,r1); if (l2>r2) swap(l2,r2); return cmp(r1,l2)!=-1&&cmp(r2,l1)!=-1;25 }26 int checkSS(point k1,point k2,point k3,point k4){27 return intersect(k1.x,k2.x,k3.x,k4.x)&&intersect(k1.y,k2.y,k3.y,k4.y)&&28 sign(cross(k3-k1,k4-k1))*sign(cross(k3-k2,k4-k2))<=0&&29 sign(cross(k1-k3,k2-k3))*sign(cross(k1-k4,k2-k4))<=0;30 }31 point getLL(point k1,point k2,point k3,point k4){32 db w1=cross(k1-k3,k4-k3),w2=cross(k4-k3,k2-k3); return (k1*w2+k2*w1)/(w1+w2);33 }34 point p[6];35 int t;36 int main(){37 ios::sync_with_stdio(false);38 cout<
<
>t;40 while (t--) {41 for (int i = 1; i <= 4; i++) {42 cin >> p[i].x >> p[i].y;43 }44 bool f=1;45 if(cmp(p[1].y,p[2].y)==0)f=0;46 if(cmp(p[3].y,p[4].y)==0)f=0;47 if(!checkSS(p[1],p[2],p[3],p[4]))f=0;48 if(!f){49 cout<<0.00<
p[3].y){ //maxy=p[1]56 point ano = getLL(p[1],tmp,p[3],{p[3].x-1,p[3].y});57 if (checkSS({p[3].x,p[3].y},{p[3].x,20000},ano,p[1])){58 cout<<0.00<
View Code

 

转载于:https://www.cnblogs.com/MXang/p/10439934.html

你可能感兴趣的文章
Windows 8 操作系统 购买过程
查看>>
软件工程课程-个人编程作业
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>
Vue.js 基础学习之组件通信
查看>>
lr_start_transaction/lr_end_transaction事物组合
查看>>
每天一个Linux命令 - 【chkconfig】
查看>>
△UVA10106 - Product(大数乘法)
查看>>
golang (7) 文件操作
查看>>
关于 Object.defineProperty()
查看>>
免认证的ssh登录设置
查看>>
[转] Maven 从命令行获取项目的版本号
查看>>
CodeIgniter学习笔记(四)——CI超级对象中的load装载器
查看>>
.NET CLR基本术语
查看>>
Java Development Environment in Linux: Install and Configure Oracle
查看>>