CodeForces - 18A Triangle(数学?)
题意:
给出三个点的坐标,初始,这三个点可以构成一个三角形。
如果初始坐标可以构成直角三角形,输出"RIGNT"。
如果某个点的 x或y 坐标移动一个单位后可以组成直角三角形,输出"ALMOST"。
如果不能构成直角三角形,输出"NEITHER"。
题解:
我的思路:
如何判断是否含有直角呢--向量。
a,b,c 三点可以构成三条向量 ab,ab,bc(不考虑方向),如果存在某两条向量的点乘积为0,那么这两个向量垂直。
AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
#define P pair<int ,int > struct Node
{
int x,y;
}a[];
P p[]; void updata()//更新向量
{
for(int i=;i < ;++i)
{
p[i].first=a[(i+)%].x-a[i].x;
p[i].second=a[(i+)%].y-a[i].y;
}
}
bool isSat()//判断是否有重合的两点
{
for(int i=;i < ;++i)
if(p[i].first == && p[i].second == )
return false;
return true;
}
int product(int i,int j)//点乘积
{
return p[i].first*p[j].first+p[i].second*p[j].second;
}
bool Check()
{
updata();
if(!isSat())
return false;
if(!product(,) || !product(,) || !product(,))
return true;
return false;
}
char *Solve()
{
if(Check())
return "RIGHT";
for(int i=;i < ;++i)
{
//i点的x右移一个单位,以下同理
a[i].x++;
if(Check())
return "ALMOST";
a[i].x--; a[i].x--;
if(Check())
return "ALMOST";
a[i].x++; a[i].y++;
if(Check())
return "ALMOST";
a[i].y--; a[i].y--;
if(Check())
return "ALMOST";
a[i].y++;
}
return "NEITHER";
}
int main()
{
for(int i=;i < ;++i)
scanf("%d%d",&a[i].x,&a[i].y);
printf("%s\n",Solve());
return ;
}
CodeForces - 18A Triangle(数学?)的更多相关文章
- Codeforces Round #512 (Div. 2) D.Vasya and Triangle 数学
题面 题意:给你n,m,k,在你在(0,0)到(n,m)的矩形内,选3个格点(x,y都是整数),使得三角形面积为n*m/k,不能找到则输出-1 题解:由毕克定理知道,格点多边形的面积必为1/2的整数倍 ...
- CodeForces 239A. Triangle
Link: http://codeforces.com/contest/407/problem/A 给定直角三角形的2个直角边a,b.求在直角坐标系中,是否存在对应的直角三角形,使得三个定点都在整点 ...
- HDU 5914 Triangle 数学找规律
Triangle 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Description Mr. Frog has n sticks, who ...
- codeforces C. Triangle
C. Triangle time limit per test 1 second memory limit per test 256 megabytes input standard input ou ...
- acdream.18.KIDx's Triangle(数学推导)
KIDx's Triangle Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Sub ...
- 杭赛.Triangle(数学推导)
Triangle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- CodeForces 173A Rock-Paper-Scissors 数学
Rock-Paper-Scissors 题目连接: http://codeforces.com/problemset/problem/173/A Description Nikephoros and ...
- codeforces 6A. Triangle
A. Triangle time limit per test 2 seconds memory limit per test 64 megabytes input standard input ou ...
- Success Rate CodeForces - 807C (数学+二分)
You are an experienced Codeforces user. Today you found out that during your activity on Codeforces ...
随机推荐
- Gatsby & React & NPX & NVM
Gatsby & React Gatsby is a blazing fast modern site generator for React. https://www.gatsbyjs.or ...
- WampServer的安装和配置
1.安装WampServer 启动时发现WampServer的图标是红色的,状态为put offline状态:发现无法put online,并报错could not found the menu it ...
- 转 My97日历控件常用功能记录
My97相信大家都不陌生,应该是我所见过的最强大的一个日历控件了,最近的项目中也比较多地用到了此控件,而且项目中经常会有不同时间范围的需求,在此列出一些比较常用的日期范围格式的设置,尽管在My97的官 ...
- 3.docker基础架构
docker是一个典型的c/s架构产品. dockerd :为客户端提供 RESTFUL API,响应来自客户端的请求, 采用模块化的架构, 通过专门的 Engine 模块来分发管理各 个来自客户端 ...
- c++数字和字符串的转换
1 利用stringstream 添加头文件 #include<sstream> 数字转字符串 #include <string> #include <sstrea ...
- django-admin和manage.py
目录 一.Django内置命令选项 check dbshell diffsettings flush makemigrations migrate runserver shell startapp s ...
- 数据库管理 trove openstack
Trove是数据库即服务的OpenStack.它旨在完全基于OpenStack运行,其目标是允许用户快速轻松地利用关系数据库的功能,而无需处理复杂的管理任务.云用户和数据库管理员可以根据需要配置和管理 ...
- 安卓Android基础第五天
使用HttpUrlConnection方式提交到服务器2 Get方式:组拼url地址把数据组拼到url上,有大小限制1kb(浏览器)或4kb(http协议) Post方式:post方式提交安全,没有大 ...
- 字符串数据结构模板/题单(后缀数组,后缀自动机,LCP,后缀平衡树,回文自动机)
模板 后缀数组 #include<bits/stdc++.h> #define R register int using namespace std; const int N=1e6+9; ...
- 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)
分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...