题解:按照输入顺序依次将点连接起来,对于连续的三个点p0,p1,p2,令向量a=p1-p0,b=p2-p1

若是凸多边形,那么b相对于a一定是向逆时针方向旋转的

判断两向量的旋转方向,可以使用向量的叉积 a×bx1×y2-x2×y1

a×b>0  b在a的逆时针方向
a×b=0  b平行于a(共线)
a×b<0  b在a的顺时针方向

要注意的是,对于最后一个点pn,还要和起始的两个点p0,p1判断一次。

#include <cstdio>
struct node{int x,y;}pt[1010];
int n,x1,x2,y1,y2;
int direction(int x1,int y1,int x2,int y2){return x1*y2-x2*y1;}
int test(){
int i; pt[n]=pt[0], pt[n+1]=pt[1] ;
for (i=2;i<=n+1;i++){
x1=pt[i-1].x-pt[i-2].x,y1=pt[i-1].y-pt[i-2].y;
x2=pt[i].x-pt[i-1].x,y2=pt[i].y-pt[i-1].y;
if(direction(x1,y1,x2,y2)<0)return 0;
}
return 1;
}
int main (){
int i;
while (~scanf("%d",&n)&&n){
for(i=0;i<n;i++)scanf("%d%d", &pt[i].x, &pt[i].y) ;
puts(test()?"convex":"concave") ;
}
return 0 ;
}

最新文章

  1. 【Codeforces235C】Cyclical Quest 后缀自动机
  2. 1、jvm的体系结构
  3. apache配置文件参数优化
  4. 原来今天是感恩节-Linux基础继续&amp;MySQL和PHP
  5. sdut 2441 屠夫与狼
  6. 【原】文本图片自适应高度小bug以及解决办法
  7. 2015年可用的TRACKER服务器大全
  8. 关于显示gif的一些方法与讨论
  9. JVM - 内存溢出问题排查相关命令jcmd jmap
  10. transcode_step()在转码过程中对pts、dts、duration的处理
  11. Android 内核基本知识
  12. 小猪Android越来越方式 Day 5 - part 2
  13. shrio配置说明
  14. android.telephony.SmsManager 短信笔记
  15. c++堆与栈的简单认识
  16. 重构手法之Replace Temp with Query(以查询取代临时变量)
  17. 芝麻HTTP: Python爬虫利器之Requests库的用法
  18. Intellij IDEA神器居然还有这些小技巧
  19. 【iCore4 双核心板_ARM】例程二十五:LWIP_DNS实验——域名解析
  20. 两台openwrt 间的免登陆ssh

热门文章

  1. English - consist of 和 compose of 的区别
  2. iOS 16进制颜色转换10进制颜色
  3. Oracle与SQL自治事务
  4. STL模板_multimap_智能指针作为键值
  5. BZOJ 3170: [Tjoi 2013]松鼠聚会( sort )
  6. Java学习之网络编程
  7. LaTeX空格
  8. Unix/Linux笔记全集
  9. MySQL 关闭子表的外键约束检察
  10. Select XML Nodes by Name [C#]