Vjudge - E - 这是高中数学向量题
2017-07-15 22:29:06
- writer:pprp
- 评价,用到了叉乘,很麻烦,C++构造知识必须扎实
- 题目如下:
- 我们用逆时针方向的顶点序列来表示,我们很想了解这块地的基本情况,现在请你编程判断HDU的用地是凸多边形还是凹多边形呢?
Input输入包含多组测试数据,每组数据占2行,首先一行是一个整数n,表示多边形顶点的个数,然后一行是2×n个整数,表示逆时针顺序的n个顶点的坐标(xi,yi),n为0的时候结束输入。
Output对于每个测试实例,如果地块的形状为凸多边形,请输出“convex”,否则输出”concave”,每个实例的输出占一行。
Sample Input4
0 0 1 0 1 1 0 1
0Sample Output
convex
-
代码如下;
#include <iostream> using namespace std; class point
{
public:
int x;
int y;
point(int a,int b):x(a),y(b) {}
point():x(),y() {}
void change(int a,int b)
{
x = a;
y = b;
}
}; class vec
{
public:
point a;
point b;
point pos;
point nag;
vec():a(point(,)),
b(point(,)),pos(),nag() {}
vec(point &aa,point&bb):
a(aa),b(bb),pos(b.x-a.x,b.y-a.y),nag(a.x-b.x,a.y-b.y) {}
void change(point & aa,point &bb)
{
a.x = aa.x;
a.y = aa.y;
b.x = bb.x;
b.y = bb.y; pos.x = b.x-a.x;
pos.y = b.y-a.y;
nag.x = a.x-b.x;
nag.y = a.y-b.y;
}
}; int chacheng(vec val1,vec val2)
{ if( (val1.nag.x * val2.pos.y-val1.nag.y*val2.pos.x)> )
{ return ;
}
else
return ;
} int main()
{
int num;
int a,b; while(cin >> num && num!=)
{
point *po = new point[num];
vec *ve = new vec[num];
for(int i = ; i < num ; i++)
{
cin >> a >> b;
po[i].change(a,b);
}
for(int i = ; i < num ; i++)
{
if(i != num-)
ve[i].change(po[i],po[i+]);
else
ve[i].change(po[i],po[]);
}
int cnt = ;
for(int i = ; i < num ; i++)
{ if(i == num-)
{
if(chacheng(ve[i],ve[])==)
{
cnt++;
}
}
else
{
if(chacheng(ve[i],ve[i+])==)
{
cnt++;
}
}
}
if(cnt == || cnt == num)
{
cout << "convex" << endl;
}
else
{
cout << "concave"<<endl;
}
}
return ;
}
Vjudge - E - 这是高中数学向量题的更多相关文章
- Java练习 SDUT-2400_高中数学?
高中数学? Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 高中数学大家都学过数列,其中一个重要的概念就是数列的通项,可 ...
- UVA - 10014 - Simple calculations (经典的数学推导题!!)
UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- PJ考试可能会用到的数学思维题选讲-自学教程-自学笔记
PJ考试可能会用到的数学思维题选讲 by Pleiades_Antares 是学弟学妹的讲义--然后一部分题目是我弄的一部分来源于洛谷用户@ 普及组的一些数学思维题,所以可能有点菜咯别怪我 OI中的数 ...
- Scratch编程与高中数学算法初步
scratch编程与高中数学算法初步 一提到编程,大家可能觉得晦涩难懂,没有一定的英语和数学思维基础的人,一大串的编程代码让人望而步,何况是中小学生. Scratch是一款由麻省理工学院(MIT) ...
- 天哪!毫无思绪!令人感到恐惧的数学(水题?)(TOWQs)
这道题的题目描述灰常简单,第一眼看以为是一道十分水的题目: 但是!!!(我仔细一看也没有发现这背后隐藏着可怕的真相~) 下面给出题目描述: 给出一个整数x,你可以对x进行两种操作.1.将x变成4x+3 ...
- 人教版高中数学(A版)
必修1 (已看) 第一章 集合与函数概念 1.1 集合 1.2 函数及其表示 1.3 函数的基本性质 第二章 基本初等函数(1) 2.1 指数函数 2.2 对数函数 2.3 幂函数 第三章 函数的应用 ...
- MindManager教程:高中数学函数思维导图怎么画
说起函数,大家应该都不陌生吧,函数不论是在初中还是在高中都是需要重点学习的知识点,不仅仅是重点,更是作为难点曾出现在高考最后一道大题中.那今天我们就来做一个函数思维导图,来简单地了解一下关于函数的一些 ...
- ZOJ 1494 Climbing Worm 数学水题
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=494 题目大意: 一只蜗牛要从爬上n英寸高的地方,他速度为u每分钟,他爬完u需要 ...
- 还记得高中的向量吗?leetcode 335. Self Crossing(判断线段相交)
传统解法 题目来自 leetcode 335. Self Crossing. 题意非常简单,有一个点,一开始位于 (0, 0) 位置,然后有规律地往上,左,下,右方向移动一定的距离,判断是否会相交(s ...
随机推荐
- Spark源码分析 – Deploy
参考, Spark源码分析之-deploy模块 Client Client在SparkDeploySchedulerBackend被start的时候, 被创建, 代表一个application和s ...
- python重建二叉树
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None ...
- 新手怎么读懂一个中型的Django项目
[前言]中型的项目是比较多的APP,肯会涉及多数据表的操作.如果有人带那就最好了,自己要先了解基本的django框架(MTV ,ORM等)师傅可以给讲解一下框架怎么组织url.py,model.py, ...
- (2.4)Mysql之SQL基础——下载与使用测试库
(2.4)SQL基础——下载与使用测试库 1.查看与下载测试数据库 2.查看安装向导视图 3.安装 [1]安装:解压后用 mysql 命令安装(记得加上set autocommit=1) [2]核验: ...
- 010-Hadoop Hive sql语法详解5-HiveQL与SQL区别
1.Hive不支持等值连接 •SQL中对两表内联可以写成:•select * from dual a,dual b where a.key = b.key;•Hive中应为•select * from ...
- 揭秘DOM中data和nodeValue属性同步改变那些事
问题引发:最近在整理DOM系列的一些知识点,发现在DOM的某些接口API中,存在一些我想不通的现象.就随便举个例子吧:DOM文档模型中的文本节点,可以通过nodeValue或data属性访问文本节点的 ...
- C的指针疑惑:C和指针13(高级指针话题)
传递命令行参数 C程序的main函数具有两个形参.第一个通常称为argc,代表命令行参数的数目. 第二个通常称为argv,它指向一组参数值.由于参数的数目并没有内在的限制,所以argv指向这组参数值( ...
- Linux:Centos7升级内核(转)
更新前,内核版本为: uname -r 3.10.0-327.10.1.el7.x86_64 升级的方法: 1.导入key rpm --import https://www.elrepo.org/RP ...
- 工作笔记——js与文件上传下载
1 js判断上传文件的后缀名,文件大小 //判断照片大小 function getPhotoSize(obj){ photoExt=obj.value.substr(obj.value.lastInd ...
- windows计划任务定时运行synctoy的坑
每次设置好synctoy之后,需要让synctoy运行一次,windows的计划任务才能成功执行,如果变更了synctoy的设置,而没有让synctoy成功执行过,windows计划任务将执行失败,坑 ...