HDU-Clockwise or Counterclockwise
题意:给出3个点左边判断,按ABC的方向走判断是顺时针还是逆时针。
矢量叉积:
计算矢量叉积是与直线和线段相关算法的核心部分。设矢量P = ( x1, y1 ),Q = ( x2, y2
),则矢量叉积定义为由(0,0)、p1、p2和p1+p2所组成的平行四边形的带符号的面积,即:P × Q = x1y2 -
x2y1,其结果是一个标量。显然有性质 P × Q = - ( Q × P ) 和 P × ( - Q ) = - ( P × Q
)。一般在不加说明的情况下,本文下述算法中所有的点都看作矢量,两点的加减法就是矢量相加减,而点的乘法则看作矢量叉积。叉积的一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系:
若 P × Q > 0 , 则P在Q的顺时针方向。 若 P × Q < 0 , 则P在Q的逆时针方向。 若 P × Q = 0
, 则P与Q共线,但可能同向也可能反向。折线段的拐向判断:
折线段的拐向判断方法可以直接由矢量叉积的性质推出。对于有公共端点的线段p0p1和p1p2,通过计算(p2 - p0) × (p1 -
p0)的符号便可以确定折线段的拐向:若(p2 - p0) × (p1 - p0) > 0,则p0p1在p1点拐向右侧后得到p1p2。
若(p2 - p0) × (p1 - p0) < 0,则p0p1在p1点拐向左侧后得到p1p2。
若(p2 - p0) × (p1 - p0) = 0,则p0、p1、p2三点共线。
思路:用向量AB判断C点左侧还是右侧。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define SIS std::ios::sync_with_stdio(false)
#define space putchar(' ')
#define enter putchar('\n')
#define lson root<<1
#define rson root<<1|1
typedef pair<int,int> PII;
//const int mod=998244353;
const int N=2e6+10;
const int M=1e3+10;
const int inf=0x7f7f7f7f;
const int maxx=2e5+7;ll gcd(ll a,ll b)
{return b==0?a:gcd(b,a%b);
}ll lcm(ll a,ll b)
{return a*(b/gcd(a,b));
}template <class T>
void read(T &x)
{char c;bool op = 0;while(c = getchar(), c < '0' || c > '9')if(c == '-')op = 1;x = c - '0';while(c = getchar(), c >= '0' && c <= '9')x = x * 10 + c - '0';if(op)x = -x;
}
template <class T>
void write(T x)
{if(x < 0)x = -x, putchar('-');if(x >= 10)write(x / 10);putchar('0' + x % 10);
}
ll qsm(int a,int b,int p)
{ll res=1%p;while(b){if(b&1) res=res*a%p;a=1ll*a*a%p;b>>=1;}return res;
}
int a[N],b[N];
int main()
{SIS;int t;cin>>t;while(t--){ll x1,x2,y1,y2,x3,y3;cin>>x1>>y1>>x2>>y2>>x3>>y3;ll a=x1-x2;ll b=y1-y2;ll c=x2-x3;ll d=y2-y3;if(a*d-b*c<0) cout<<"Clockwise"<<endl;else cout<<"Counterclockwise"<<endl;}return 0;
}
HDU-Clockwise or Counterclockwise相关推荐
- 计算几何(判断顺时针/逆时针) - Clockwise or Counterclockwise - HDU 6857
计算几何(判断顺时针/逆时针) - Clockwise or Counterclockwise - HDU 6857 2020 Multi-University Training Contest 8 ...
- 9行代码AC——HDU 6857 -Clockwise or Counterclockwise(2020 Multi-University Training Contest 8)(判断三点顺序)
励志用尽量少的代码做高效表达 Problem Description It is preferrable to read the pdf statment. After some basic geom ...
- hdu 6857 Clockwise or Counterclockwise
Clockwise or Counterclockwise 原题链接 题意 圆上三点A->B->C是 顺时针还是逆时针 思路 求出A,B,C三点所在半径角度数,再比较 #include & ...
- Clockwise or Counterclockwise
思路: AB(向量)X BC(向量),根据右手定则,可判断BC向量是在AB右侧,还是左侧 参考代码: #include <cstdio> #include <algorithm> ...
- 【杭电多校2020】第八场1003.Clockwise or Counterclockwise
题目链接 思路: 如果输出结果是顺时针则叉积方向向内,当结果是逆时针时叉积方向向外. 代码: #include<bits/stdc++.h> #define int long long # ...
- 2020多校第八场Clockwise or Counterclockwise
思路 利用向量的叉乘判断方向 代码 #include <iostream> #include <cstdio> #include <algorithm> #incl ...
- Clockwise or Counterclockwise(八,学习总结)
题意:给三个点A,B,C,三点到原点距离相等,从A到B再经过C来形成圆,问该圆是逆时针还是顺时针形成. 思路:用向量来解决,选择向量AB和AC,若AB✖C小于0,则为逆时针形成,否则为顺时针形成. # ...
- HDU 5836 Rubik's Cube BFS
Rubik's Cube 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5836 Description As we all know, Zhu is ...
- 计算几何及其应用——计算几何基础
写在前面:当时开计算几何这个专题神奇的从解析几何开始了,然后最近发现<计算几何及应用(金博)>这本书前面那章忽略掉了一些重要的东西比如说点定位.半平面相交之类的东西,恰好还有一些和计算几何 ...
- 河南省第十届大学生程序设计竞赛 A,B,C,D,F,G,H 题解
H: Intelligent Parking Building 时间限制: 1 Sec 内存限制: 128 MB 提交: 22 解决: 20 [提交][状态][讨论版] 题目描述 There is ...
最新文章
- 两阶段提交(Two-Phase Commit)
- 分析了10万起诈骗案例,大数据告诉你:2018年骗子更狡猾了
- 程序的内存模型—内存四区—堆区
- 面向对象程序设计_面向对象的程序设计(续)
- 后台服务器控件点击跳转另一页面显示本页面
- 数据库-优化-数据库系统配置优化-操作系统优化
- 每台计算机需要配置网关吗,每台计算机的IP地址和网关以及子网掩码的设置有哪些规律或者规则吗?...
- NodeJS学习目录
- Java什么是重用_深度解析:java必须掌握的知识点——类的重用
- Leetcode算法题(C语言)6--只出现一次的数字
- About_PHP_验证码的生成
- 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
- harmonyos2.0系统,Harmonyos2.0刷机包
- C语言练习题(递归)
- Linux自学、大数据学习前奏笔记---Linux基础知识,shell命令介绍学习
- 开源考试系统 -微信小程序开发
- buildroot patch 补丁文件使用方法
- python求小于n的最大素数_找出小于n的最大素数,其中n =〜10 ^ 230 - python
- Java数据结构和算法-图
- Android androidx.startup:startup-runtime的minCompileSdk问题
热门文章
- 【解决乌班图虚拟机重启后WiFi图标不见方法】
- python画创意图形_用Python制作酷炫图形之如意金箍棒_颜色增加模块应用
- react native 安装watchman flow
- vue导出pdf文件
- [frp]免备案创建网站域名映射
- 深度揭秘:从“0”到“数千万”日活,咪咕视讯高速增长...
- 归并算法Python3.7实现及时间复杂度分析
- 前端最基础的效果----手风琴效果,用JS实现!!!
- 【browserify】一步步教你学会browserify
- 灵芝燕窝、鱼油钙片成为天猫双11中老年群体囤货首选