德莱联盟
来源:互联网 发布:樱井知香ed2k file 编辑:程序博客网 时间:2024/05/01 07:17
德莱联盟
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
欢迎来到德莱联盟。。。。
德莱文。。。
德莱文在逃跑,卡兹克在追。。。。
我们知道德莱文的起点和终点坐标,我们也知道卡兹克的起点和中点坐标,问:卡兹克有可能和德莱文相遇吗?,并且保证他们走的都是直线。
- 输入
- 几组数据,一个整数T表示T组数据
每组数据 8个实数,分别表示德莱文的起点和终点坐标,以及卡兹克的起点和终点坐标 - 输出
- 如果可能 输出 Interseetion,否则输出 Not Interseetion
- 样例输入
2-19.74 7.14 22.23 -27.45 -38.79 -5.08 47.51 34.01-8.61 9.91 -32.47 6.47 -3.81 -16.1 7.82 -6.37
- 样例输出
InterseetionNot Interseetion
代码:#include <iostream>using namespace std;int main() { //德莱文的起点与终点坐标 double dex1, dey1, dex2, dey2; //卡兹克的起点与终点坐标 double kax1, kay1, kax2, kay2; int n; cin >> n; while (n--) { cin >> dex1 >> dey1 >> dex2 >> dey2 >> kax1 >> kay1 >> kax2 >> kay2; //德莱文的斜率dek,常量b(直线的方程式y = kx + b) double dek, deb; dek = (dey2 - dey1) / (dex2 - dex1); deb = dey1 - dek * dex1; //卡兹克的斜率kak,常量b double kak, kab; kak = (kay2 - kay1) / (kax2 - kax1); kab = kay1 - kak * kax1; //因为不知道起点与终点的x的大小关系,所以需要先找出他们的大小关系,这里left指较小的x,right指较大的x double deLeftX, deRightX; double kaLeftX, kaRightX; if (dex1 > dex2) { //找出德莱文的左x和右x deLeftX = dex2; deRightX = dex1; } else { deLeftX = dex1; deRightX = dex2; } if (kax1 > kax2) { //找出卡兹克的左x和右x kaLeftX = kax2; kaRightX = kax1; } else { kaLeftX = kax1; kaRightX = kax2; } //如果这两个区间没有交集,那么这两条线段也就不可能相交 if (deRightX < kaLeftX || kaRightX < deLeftX) { cout << "Not Interseetion" << endl; continue; } if (dek == kak) { //斜率相同,无交点 cout << "Not Interseetion" << endl; continue; } else { //斜率不相同,判断两条线段是否相交 double InterseetionX; //求出两条直线的交点 InterseetionX = (kab - deb) / (dek - kak); //求出德莱文起点与终点区间与卡兹克起点与终点区间的交集 double leftX, rightX; if (deLeftX > kaLeftX) { leftX = deLeftX; } else { leftX = kaLeftX; } if (deRightX > kaRightX) { rightX = kaRightX; } else { rightX = deRightX; } //判断直线的交点在不在公共区间内,如果两条直线的交点在这两个区间的公共区间内,那么线段肯定相交 if (InterseetionX >= leftX && InterseetionX <= rightX) { cout << "Interseetion" << endl; } else { cout << "Not Interseetion" << endl; } } } return 0;}
0 0
- 德莱联盟
- 德莱联盟
- 德莱联盟
- 欢迎来到德莱联盟(一)
- 欢迎来到德莱联盟(二)
- 欢迎来到德莱联盟(三)
- 德莱联盟[判断线段相交]
- 联盟
- 判断两线段相交[nyoj 1016 德莱联盟]
- 德莱联盟(判断两点是否相交 nyist)
- 德莱联盟(判断线段是否相交)
- 德莱联盟(判断两个线段是否相交)
- nyoj1016德莱联盟【判断两线段是否相交】
- NYOJ1016(德莱联盟)(判断线段相交)
- NYOJ1016:德莱联盟(判线段相交)
- 【资讯】巴克莱加入CLS区块链联盟
- 网站联盟
- 打工联盟
- 删除已排序单链表中重复的元素
- 队列的顺序存储结构和链式存储结构
- 个人随笔(前端)
- windows下安装python+eclipse
- android获得在SurfaceView上滑动距离
- 德莱联盟
- app开发的一些思路
- iOS开发:音频播放、录音、视频播放、拍照、视频录制
- java之快速排序
- 匿名内部类
- jblas-1.2.4.jar : spark第三方依赖打包
- extjs监听获取焦点重新赋值
- Android listView 的适配器adapter.notifyDataSetChanged();刷新没有作用
- 启动 webLogic的时候有错误 此时不应有 \Java\jdk\lib\dt.jar