51nod 1264 基础
来源:互联网 发布:py是什么意思啊网络 编辑:程序博客网 时间:2024/06/12 19:48
1264 线段相交
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注
给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出”Yes”,否则输出”No”。
Input
第1行:一个数T,表示输入的测试数量(1 <= T <= 1000)
第2 - T + 1行:每行8个数,x1,y1,x2,y2,x3,y3,x4,y4。(-10^8 <= xi, yi <= 10^8)
(直线1的两个端点为x1,y1 | x2, y2,直线2的两个端点为x3,y3 | x4, y4)
Output
输出共T行,如果相交输出”Yes”,否则输出”No”。
Input示例
2
1 2 2 1 0 0 2 2
-1 1 1 1 0 0 1 -1
Output示例
Yes
No
把解题的过程用代码敲出来
#include <iostream>#include <cmath>#include <cstring>#include <stdio.h>#include <algorithm>#include <iomanip>using namespace std;int main(){ int t; cin>>t; while(t--) { double x1,y1,x2,y2,x3,y3,x4,y4; cin>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4; double k1,k2,b1,b2; k1=(y2-y1)/(x2-x1); k2=(y4-y3)/(x4-x3); b1=y1-k1*x1; b2=y3-k2*x3; double x; x=(b1-b2)/(k2-k1); double a,b,c,d; a=min(x1,x2); b=max(x1,x2); c=min(x3,x4); d=max(x3,x4); if(x>=a&&x<=b&&x>=c&&x<=d) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
0 0
- 51nod 1264 基础
- 51nod 1051【基础】
- 51nod 动态规划基础
- 51nod 基础题小结
- 51 nod 1212 基础MST
- 51nod 基础题-1459
- 51nod--1264 线段相交 (计算几何基础, 二维)
- 51nod--1298 (计算几何基础)
- 51nod 基础题(2)
- 51nod--基础题大数加法
- 51nod 1002 数塔取数问题(基础dp)
- 51nod 1021 石子归并(基础dp)
- 51 nod 动态规划基础篇 3
- 51nod 动态数组基础题 4
- 51nod 数塔取数问题 基础dp
- 51nod 动态规划基础篇 6
- 51 nod 动态规划 基础篇 1
- 51nod 动态规划 基础篇 2
- 傅里叶1
- PHP-自己写的代码练习-数组
- 反射机制进行动态调用的两种创建方法实例与hama中的反射机制
- 在DOS框下绘制圆
- 剪刀手:Android平台上的图片裁剪库
- 51nod 1264 基础
- 这是第一篇
- 读懂UML类图
- java.io.File中的绝对路径和相对路径.
- MyEclipse ant 报错 Specified VM install not found: type Standard VM, name jre
- 文章标题
- 图解使用Telnet程序手工发送邮件
- mac下编译安装opencv
- hrtimer的简单使用