51nod 1264 基础
2016-06-07 10:57
417 查看
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
把解题的过程用代码敲出来
基准时间限制: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; }
相关文章推荐
- [Leetcode]26. Remove Duplicates from Sorted Array
- 二维数组中的查找
- 剪刀手:Android平台上的图片裁剪库
- Xcode折叠函数设置 及快捷键
- 在DOS框下绘制圆
- hdu 5459(递推好题)
- 我的第一篇CSDN博客
- JAVA 开发的名词解释
- PHP-自己写的代码练习-数组
- 安卓 串口读取数据遇到的问题
- 傅里叶1
- RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp
- RxVolley使用文档 —— RxVolley = Volley + RxJava + OkHttp
- Android_Intent_passValueForResult
- 支持数据列表分页的帮助类
- 第二阶段冲刺06
- 【Linux】Linux下调用Python程序脚本
- POJ2349最小生成树
- JavaScript语言精粹经典实例(整理篇)
- jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)