zoukankan      html  css  js  c++  java
  • 内心里的一把火 福建工程学院第七届ACM程序设计新生赛 (同步赛)

    链接:https://ac.nowcoder.com/acm/contest/289/D
    来源:牛客网
     

    题解:简单来看 可以用三个小三角形的面积之和与大三角形的面积作比较。

    问题的关键式怎么求三角形的面积,知道向量的叉乘求面积好处理一些,简单来说 结论是这样的:

    已知三角形三点坐标为(x1,y1) (x2,y2) (x3,y3)

    则三角形面积为=(1/2)*[(x2y3-x3y2)-(x1y3-x3y1)+(x1y2-x2y1)]

    详细请转:https://blog.csdn.net/vaeloverforever/article/details/82955101

    代码

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    double x[5],y[5];
    double area(int a,int b,int c){
        return fabs((x[b]*y[c]-x[c]*y[b])-(x[a]*y[c]-x[c]*y[a])+(x[a]*y[b]-x[b]*y[a]));
    }
    
    int main(){
        while(cin>>x[1]>>y[1]>>x[2]>>y[2]>>x[3]>>y[3]>>x[0]>>y[0]){
            double one=area(0,1,2);
            double two=area(0,2,3);
            double three=area(0,1,3);
            double s=area(1,2,3);
            if(one+two+three==s)
                cout<<"YES"<<endl;
            else
                cout<<"NO"<<endl;
        }
        return 0;
    }
    

    题目描述

    小明在上学的路上,看到了小花,小花也看见了他,两个人深情的对视了一下,然后小花就对小明说:你爱过我吗?小明说:爱过。小花就对小明说,那你能帮我做一个题目吗?如果你能做对的话,就证明你爱过我。小明自信的回答好啊。小花说,给你三个人的坐标,以及小花的坐标,她想知道她是不是处在他们三个人的范围之内。小明顿时慌了,早知道我就不说了,他赶紧找到了acmer来帮他解决了。

    image.png

    输入描述:

    多组输入,输入A,B,C的坐标(x1,y1,x2,y2,x3,y3),以及小花的坐标(x,y)。(范围都是在0到100之内的整数)

    输出描述:

    是的话就输出YES,否则输出NO

    示例1

    输入

    复制

    0 0 3 0 0 4
    1 1

    输出

    复制

    YES
  • 相关阅读:
    Oracle:解锁scott用户及设置密码
    js生成条形码
    返回头部效果
    密码强度
    事件委托小效果
    圆形导航效果
    进度条效果
    标题跟随效果
    随机抽人小效果
    点击创建效果
  • 原文地址:https://www.cnblogs.com/UUUUh/p/10284039.html
Copyright © 2011-2022 走看看