励志用尽量少的代码做高效表达


Problem Description

It is preferrable to read the pdf statment. After some basic geometric lessons, Cuber QQ has learned that one can draw one and only one circle across three given distinct points, on a 2D plane. Specialized in art, Cuber QQ has shown remarkable skills to draw circle in one stroke, especially when the stroke is done clockwise. He wonder whether he will be able to do that if 3 points has been given.
In particular, he is given three distinct points A(x1,y1), B(x2,y2), C(x3,y3) which lie on a circle centered at O(0,0). Imagine starting from A, he draws the circle across B and finally gets C. Determine whether he is drawing clockwise or counterclockwise.

Input

The first line contains an integer T (1≤T≤1 000), denoting the number of test cases.
In the next T lines, each line contains six space-separated integers x1, y1, x2, y2, x3, y3 (−10^9≤x1,y1,x2,y2,x3,y3≤10 ^9) denoting the coordinate of A, B and C.
It is guaranteed that A, B, C are pairwise distinct and |AO|=|BO|=|CO|>0.

Output

For each test case, output one line containing ‘‘Clockwise’’ or ‘‘Counterclockwise’’.

Sample Input

3
1 2 2 1 -1 -2
4 3 -4 3 3 4
4 -3 4 3 3 4

Sample Output

Clockwise
Clockwise
Counterclockwise


知识储备

解此题所用到的基本知识是:数学几何——向量叉乘。
相关知识为:
1、传送门1——>高中必修四第二章平面几何(基础)
2、传送门2——>点乘、叉乘在编程中的作用(涉及行列式)


简单讲一下叉乘:

一、向量的叉积:已知向量a=(x1,y1); 向量b=(x2,y2); 则a×b= x1*y2-x2*y1
二、叉积的结果也是一个向量,是垂直于向量a,b所形成的平面,如果看成三维坐标的话是在 z 轴上,上面结果是它的模。
三、方向判定:右手定则:
1、四指指向x向量(右手垂直于平面)
2、四指朝y向量弯曲(注意弯曲方向的夹角要小于180°)
3、大拇指指向为a*b的方向
如图所示:


如下图所示,由右手定则可知,若我们将x向量看做AB,y向量看做AC,根据手指的方向可得,首先经过B点要做逆时针运动,而大拇指朝上代表叉乘的结果大于0(因为如果结果为正,则向量在Z轴的正半轴),因此可得:当叉乘结果大于0时,做逆时针;反之做顺时针。


再来看题:
1、设三点坐标为:A:(x1,y1); B(x2,y2); C(x3,y3);
2、得到AB向量等于(x2-x1, y2-y1); AC向量等于(x3-x1, y3-y1)
3、将两个向量带入叉乘公式,若结果小于零,则需逆时针,若结果大于零,则需顺时针
4、编程


代码展示:

#include<stdio.h>
int main() {int T; scanf("%d", &T); while(T--) {double xa, ya, xb, yb, xc, yc;scanf("%lf%lf%lf%lf%lf%lf", &xa,&ya,&xb,&yb,&xc,&yc);double num = (xb-xa)*(yc-ya)-(yb-ya)*(xc-xa);printf(num>0?"Counterclockwise\n":"Clockwise\n");}
return 0;}

拨云见日,未来可期。

9行代码AC——HDU 6857 -Clockwise or Counterclockwise(2020 Multi-University Training Contest 8)(判断三点顺序)相关推荐

  1. hdu 6857 Clockwise or Counterclockwise

    Clockwise or Counterclockwise 原题链接 题意 圆上三点A->B->C是 顺时针还是逆时针 思路 求出A,B,C三点所在半径角度数,再比较 #include & ...

  2. 43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)

    一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 代码(去掉空行43行) #include<iostream> #inclu ...

  3. 12行代码AC——L1-058 6翻了(15分)

    立志用更少的代码做更高效的表达 "666"是一种网络用语,大概是表示某人很厉害.我们很佩服的意思.最近又衍生出另一个数字"9",意思是"6翻了&quo ...

  4. 15行代码AC——1019 数字黑洞 (20分) 甲级1069. The Black Hole of Numbers (20)(解题报告)

    立志用更少的代码做更高效的表达 PAT甲级最优题解-->传送门 Pat乙级最优化代码+题解+分析汇总-->传送门 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非 ...

  5. 7行代码AC——1010 一元多项式求导 (25分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 设计函数求一元多项式的导数.(注:x​n(n为整数)的一阶导数为n*x​n-1​​ .) 输入格式: 以指数递降 ...

  6. 解题报告+优化——试题 基础练习 矩形面积交——16行代码AC

    励志用少的代码做高效的表达. 心路历程: 第一阶段: 最初想独立AC出这题来着,但考虑来考虑去,总觉得没想到点子上,缺点什么似的.于是搜网,果不其然,是一种全新的算法"线段交".当 ...

  7. 【简洁代码】1028 List Sorting (25 分)_26行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Excel can sort records according to any column. Now you are suppo ...

  8. 【简便代码】1064 朋友数 (20分)_25行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 如果两个整数各位数字的和是一样的,则被称为是"朋友数",而那个公共的和就是它们的" ...

  9. 【最详细解析】1052 卖个萌 (20分)_28行代码AC

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 萌萌哒表情符号通常由"手"."眼"."口"三个主要部 ...

最新文章

  1. 道路场景语义分割算法
  2. Exchange2003-2010迁移系列之七
  3. [转载] Handbook of Constraint Programming——Chapter1 Introduction
  4. Java 三位正整数的个十百位数字的立方和
  5. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第三章 课后答案
  6. Hadoop:简单介绍
  7. poj1006生理周期(中国剩余定理)
  8. mysql sillyr x.so_mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录...
  9. java fxml教程_JavaFX 初学入门(一):FXML嵌套与原始控件继承
  10. 2021高值人才职业发展洞察:连接、信任与赋能----“高能”、“高薪”、“高潜”...
  11. C#中upd分包与发送,已经实现全部代码
  12. 新手驾车操作指南[200P]
  13. HTML5 - WebSQL
  14. 开源中文语音识别项目介绍:ASRFrame
  15. python修改文件夹下文件夹的名字
  16. oem是代工还是贴牌_oem与ODM有什么区别?
  17. Hackthebox入门
  18. httpClient笔记
  19. TensorFlow2.0学习笔记2-tf2.0两种方式搭建神经网络
  20. 【python教程入门学习】Python黑科技:WiFi破解

热门文章

  1. 运用贪心思想解决跳跃游戏
  2. 蔡砚刚:uAVS3对标x265 veryslow将节省30%码率
  3. Amazon Aurora 深度探索
  4. 什么是Lucene和Solr和Elasticsearch,它们的区别是什么?
  5. 拼多多的真实面试题:数亿的用户,如何用Redis统计独立用户访问量
  6. 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
  7. SQL 中 left join、right join、inner join 的区别
  8. P8-DevOps中的CI/CD环境搭建与调优
  9. 【JavaScript】Document对象学习
  10. 【Java文件操作】txt文件的创建