题目连接   codeforces 961.D

题意:

给出若干个点,问是否能画出两条线,保证这些点都在这两条线上

题解:

两点确定一条直线,找出一点不在这条直线上,然后枚举这三个点两两在一条直线上,如果有出现第5个点不在这两条直线上(因为出现第4个点时,虽然不在第一条直线上,但是可以和第3个不在第一条直线上的点组成第二条直线),输出NO,否则输出YES

向量叉乘 等于 0 ,三点在同一条直线上      (x1 * y2) - (x2 * y1)

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
struct node{ll x, y;
}a[100005];
int n;
ll cross(int d, int b, int c){  // 向量叉乘return (a[d].x-a[b].x) * (a[c].y-a[b].y) - (a[c].x-a[b].x) * (a[d].y-a[b].y);
}
bool judge(int a, int b){int c = -1, d = -1;for(int i = 1; i <= n; i++){if(cross(a, b, i) != 0){if(c == -1){c = i;   // 出现第3个点不在第一条直线上}else if(d == -1){d = i;    // 出现第4个点不在第一条直线上}else if(cross(c, d, i) != 0){ // 第三个和第四个点组成第二条直线return false;        // 都不在这两条直线上,这种情况不成立}}}return true;
}
int main(){int c = -1;cin >> n;for(int i = 1; i <= n; i++){cin >> a[i].x >> a[i].y;}for(int i = 3; i <= n; i++){if(cross(1, 2, i) != 0){c = i;        // 出现不在第一条直线上的点break;}}if(c == -1){      // 如果没有出现,说明全部点都在一条直线上,符合题意cout << "YES" << endl;}else if(judge(1, 2) || judge(1, c) || judge(2, c)){ // 枚举三个点两两在一条直线上cout << "YES" << endl;}else{cout << "NO" << endl;}return 0;
}

codeforces 961 D. Pair Of Lines (几何,向量叉乘,三点共线)相关推荐

  1. CodeForces - 1324 D. Pair of Topics 思维+多解法

    CodeForces - 1324 D. Pair of Topics 原题地址: http://codeforces.com/contest/1324/problem/D 基本题意: 给你一个数组, ...

  2. 2014软专高级程序语言T2(用向量叉乘判断点与三角形的位置关系)

    编写程序,输入A,B,C,D四个点的坐标,假设A,B,C三点可以构成一个三角形,判断D点是否落在三角形内. 解题思路: 假设三角形的三个点按照顺时针(或者逆时针)顺序是A,B,C.对于某一点P,求出三 ...

  3. Pipe HDU - 2150(判断线段相交+向量叉乘线代详解)

    题目: 经过激烈的争夺,Lele终于把那块地从Yueyue的手里抢了回来.接下来,Lele要开始建造他的灌溉系统. 通过咨询Lele的好友--化学系的TT,Lele决定在田里挖出N条沟渠,每条沟渠输送 ...

  4. python如何叉乘_向量点乘与向量叉乘

    向量的点积与向量的叉乘应该是高中时解析几何的知识,很久没有用,已经回忆不起来了,最近接触到了,一脸茫然,在此复习下: 1. 向量的点乘 1.1 释义 向量的点乘,也叫向量的内积.数量积,对两个向量执行 ...

  5. NLP︱高级词向量表达(三)——WordRank(简述)

    如果说FastText的词向量在表达句子时候很在行的话,GloVe在多义词方面表现出色,那么wordRank在相似词寻找方面表现地不错. 其是通过Robust Ranking来进行词向量定义. 相关p ...

  6. 用MATLAB绘制两个圆相切,教您用几何绘图工具画三个两两相切的圆

    圆与圆的位置关系有:相离,外切,相交,内切,内含,它们之间的位置是由圆心距与两半径的长度来确定的.那么如果想画出三个两两相切的圆,要怎样画呢?这时我们可以利用几何画板这个绘图工具,画出既标准又美观的图 ...

  7. 两向量叉乘的计算公式_高中数学知识背景下对向量叉乘运算的探讨(向东来)

    c b a θ 高中数学知识背景下对向量叉乘运算的探 讨 在高中数学的学习中,同学们接触到向量的概念,并了解其性质.线性运算.坐标表 示.数量积以及在实际问题中的应用.在此基础上,可进一步深化,引入向 ...

  8. 向量叉乘算子、点乘算子与矩阵运算的关系

    文章目录 向量叉乘 运算测试 结论 矩阵与向量点乘 变量 算子 测试 结论 向量叉乘 (a×b)×c=b(a⋅c)−a(b⋅c)(a×b)×c = b(a·c) - a(b·c)(a×b)×c=b(a ...

  9. codeforces 618 C. Constellation(三角形,三点共线)

    题目链接 codeforces 618 C 题意 给出n个点,取三角形,且三角形内不包含其他点 题解: 先对点坐标进行排序,X 或 Y都可以,意思是在边界取三角形,尽可能不接触其他点,如果构不成三角形 ...

最新文章

  1. fragment中文网_更新 · React Native 中文网
  2. bootstrap 栅栏系统
  3. php 二叉树判断节点的位置,PHP实现判断二叉树是否对称的方法
  4. python教程:Json模块中dumps、dump、loads、load函数用法讲解
  5. 王道计算机考研 计算机组成原理 第二章、数据的表示和运算
  6. Delphi中的各种路径
  7. 《Java技术》第九次作业计科1501赵健宇-IO
  8. hp-ux mysql_HP-UX 安装MySQL
  9. html进阶css(5)
  10. 反爬虫策略之----UserAgent设置与随机生成
  11. 从B站源码里探索推荐算法的奥义
  12. 一盘商家一盘货,拼多多为什么比手淘便宜?
  13. 奋斗5年,从月薪3500到700万(不止谈赚钱,故事也很感人)
  14. 使用循环结构输出数字三角形图形
  15. Revel框架快速入门教程
  16. 【LeetCode】975. Odd Even Jump 解题报告(C++)
  17. Coder往事之: 一些炫酷的特效 for web 前端 (一)
  18. MySQL技能树学习总结
  19. Urchin.exe使用说明
  20. 一个程序员如何给LPL发弹幕加油

热门文章

  1. linux信号解释(1)
  2. Microbiome:南农张瑞福团队揭示放牧引起草原微生物组变化驱动土壤有机碳的转化和生产力的提升...
  3. C语言学习笔记(四) 运算符优先级
  4. ggplot 绘制热图
  5. 数组14:分离整数各位
  6. 外包程序猿的漫漫人生路
  7. 页面访问量和网站访问量的统计
  8. 有理数加法 (15 分)
  9. 33学习笔记——描述统计分析3--数据的描述统计量
  10. 灰度图像的频率域滤波——理想低通滤波器(Matlab)