hihocoder 1040 矩形判断解题报告
来源:互联网 发布:mitbih数据读取 编辑:程序博客网 时间:2024/05/17 02:27
用来热身的一道题目,根据题意输入8个点表示4条线,可以利用4个向量来表示这四条线,判断是否组成矩形只需拿出任一条向量判断其余3条向量是否有两条垂直向量,两条平行向量。如果有,则构成矩形,没有则输出"NO"
代码如下。
#include <iostream>#include <algorithm>#include <cstdio>using namespace std;const int num = 4;struct Data{ int x,y;};struct line{ Data one,two; line(int a = 0,int b = 0,int c = 0,int d = 0) { one.x = a;one.y = b; two.x = c;two.y = d; }}T[num];void input(){ int a,b,c,d; for(int i = 0; i < 4; ++i) { scanf("%d%d%d%d",&a,&b,&c,&d); T[i] = *new struct line(a,b,c,d); }}bool check(){ int p = 0,cu = 0; int a = T[0].one.x,b = T[0].one.y,c = T[0].two.x,d = T[0].two.y; int a2,b2,c2,d2; for(int i = 1; i < 4;++i) { a2 = T[i].one.x; b2 = T[i].one.y; c2 = T[i].two.x; d2 = T[i].two.y; int x1 = c - a; int y1 = d - b; int x2 = c2 - a2; int y2 = d2 - b2; if(x1 * x2 + y1 * y2 == 0) cu++; if(x2 * y1 - y2 * x1 == 0) p++; } if(cu == 2 && p == 1) return true; else return false;}int main(){ int n;cin>>n; while(n--) { input(); if(check()) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0;}
0 0
- hihocoder 1040 矩形判断解题报告
- hihocoder#1040判断矩形
- 【hihoCoder】 #1040 : 矩形判断
- hihocoder #1040 矩形判断
- [HihoCoder]#1040 : 矩形判断
- hihoCoder--1040 矩形判断
- hihocoder #1040 : 矩形判断
- hihocoder#1040之矩形判断
- hihocoder #1040 : 矩形判断 #java
- hihoCoder 1040 : 矩形判断 计算几何
- hihoCoder题目AC #1040 : 矩形判断 Java
- hihoCoder #1040 : 矩形判断 (几何)
- hihoCoder 矩形判断
- hihocoder#1039 解题报告
- [hihoCoder] 岛屿 解题报告
- 【解题报告】嵌套矩形
- hihoCoder挑战赛20解题报告
- [hihoCoder] #1306 : 股票价格 解题报告
- dom4j 解析xml
- 今天讲一讲简单的图片叠加式的动画创建,帧动画
- fiddlercore学习(2)
- MySQL性能调优——锁定机制与锁优化分析
- TableView的优化
- hihocoder 1040 矩形判断解题报告
- BestCoder Round #83 zxa and wifi(一个奇怪的DP题)
- 如何求非终结符的FIRST集合FOLLOW集
- iOS面试题 汇总
- 归并排序
- 列出受当前处理器支持的指令集扩展
- LeetCode|Bulb Switcher
- B. 天平
- java中JSON将数组对象转换成JSON字符串输出实例