POJ1569 Myacm Triangles 判断点与三角形的关系

triangles:在GPU上计算大型图形中的三角形 三角形 CUDA并行算法的实现,用于对大型图形中的三角形(即3个周期)进行计数。 带有基准和顺序的CPU实现方案以供比较。 立即下载

Description


There has been considerable archeological work on the ancient Myacm culture. Many artifacts have been found in what have been called power fields: a fairly small area, less than 100 meters square where there are from four to fifteen tall monuments with crystals on top. Such an area is mapped out above. Most of the artifacts discovered have come from inside a triangular area between just three of the monuments, now called the power triangle. After considerable analysis archeologists agree how this triangle is selected from all the triangles with three monuments as vertices: it is the triangle with the largest possible area that does not contain any other monuments inside the triangle or on an edge of the triangle. Each field contains only one such triangle. 

Archeological teams are continuing to find more power fields. They would like to automate the task of locating the power triangles in power fields. Write a program that takes the positions of the monuments in any number of power fields as input and determines the power triangle for each power field. 

A useful formula: the area of a triangle with vertices (x1, y1), (x2, y2), and (x3, y3) is the absolute value of 

0.5 * [(y3 - y1)(x2 - x1) - (y2 - y1)(x3 - x1)]. 

Input

For each power field there are several lines of data. The first line is the number of monuments: at least 4, and at most 15. For each monument there is a data line that starts with a one character label for the monument and is followed by the coordinates of the monument, which are nonnegative integers less than 100. The first label is A, and the next is B, and so on. 

There is at least one such power field described. The end of input is indicated by a 0 for the number of monuments. The first sample data below corresponds to the diagram in the problem. 

Output

For each power field there is one line of output. It contains the three labels of the vertices of the power triangle, listed in increasing alphabetical order, with no spaces.

Sample Input

6
A 1 0
B 4 0
C 0 3
D 1 3
E 4 4
F 0 6
4
A 0 0
B 1 0
C 99 0
D 99 99
0

Sample Output

BEF
BCD

Source


求一些点所构成的三角形中,内部(含边)不含其他点的面积最大的三角形。

由于点很少,枚举所有三角形,在判断内部是否有点即可。

判断内部是否有点有几种办法:

一是判断一点与该三角形任意两点组成的三角形面积之和是否等于原三角形;

二是判断点是否在边上以及是否与该三角形任意一点相对于其余两点在同侧。

两种方法难易很明显。

求面积可用题中所给公式。

#include <iostream>
#include <cstdio>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
typedef long long LL;
double EPS=1e-6;
struct maxans{
    double maxn;
    char a,b,c;
}ans;
struct CNode{
    double x,y;
    CNode(double xx,double yy): x(xx),y(yy){}
    CNode(){}
    double operator ^ (const CNode & v) const{
        return x*v.y-v.x*y;
    }
}node[20];

CNode operator - (CNode p,CNode q)
{
    return CNode(p.x+q.x,p.y+q.y);
}
double Area(int i,int j,int k)
{
    return fabs((node[k].y-node[i].y)*(node[j].x-node[i].x)-(node[j].y-node[i].y)*(node[k].x-node[i].x));
}

bool IsZero(double x)
{
    return -EPS<x&&x<EPS;
}
int SideOfLine(int p,int a,int b)
{
    double result = (node[b] - node[a]) ^ (node[p] - node[a]);
    if (IsZero(result)) return 0;
    else if (result > 0) return 1;
    else return -1;
}
int main()
{
    int n;
    double x,y;
    char ch;
    char a[20];
    while(~scanf("%d",&n),n){
        for(int i=0;i<n;i++){
            getchar();
            scanf("%c%lf%lf",&ch,&x,&y);
            node[i]=CNode(x,y);
            a[i]=ch;
        }
        ans.maxn=0;
        for(int i=0;i<n-2;i++){
            for(int j=i+1;j<n-1;j++){
                for(int k=j+1;k<n;k++){
                    int flag=1;
                    int temp=Area(i,j,k);
                    for(int t=0;t<n;t++){
                        if(t!=i&&t!=j&&t!=k){
                            if(temp==(Area(t,i,j)+Area(t,j,k)+Area(t,k,i))){
                                flag=0;
                                break;
                            }
                        }
                    }
                    if(flag){
                        if(temp>ans.maxn){
                            ans.maxn=temp;
                            ans.a=a[i];
                            ans.b=a[j];
                            ans.c=a[k];
                        }
                    }
                }
            }
        }
        printf("%c%c%c\n",ans.a,ans.b,ans.c);
    }
    return 0;
}


添加odbc数据源时的一些问题和解决办法 pl/sql 阅读详情

相关推荐

Windows 11 24H2 系统下,保姆级安装华为 eNSP 模拟器(含依赖软件下载与避坑指南)

本文提供Windows 11 24H2系统下华为eNSP模拟器的完整安装指南,涵盖系统配置调整、依赖软件安装及常见问题解决方案。特别针对新版系统的兼容性问题,提供详细的避坑步骤和优化建议,帮助网络工程师顺利完成eNSP模拟器的部署与使用。

weixin_42567752的博客 428

登山第三梯:判断点与三角形的关系——不是三角恋

判断一个点是否在三角形内部,通常有面积法、内角和法、同侧法、重心法等算法,其中,效率比对耗时情况为:内角和法>面积法>同侧法>重心法

qq625924821的博客 943

计算机网络Wireshark实验(西安交通大学)

实验名称 计算机网络Wireshark实验 实验日期 2021 年 5 月 17 日 实验地点 XJTU

沉鱼叶的博客 1814

POJ 1569 && Myacm Triangles (枚举+叉积)

Myacm Triangles Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1280 Accepted: 718 Description There has been considerable archeological work on the ancient Myacm culture. Many artifacts ...

qq_43460290的博客 267

ORB-SLAM3编程实践指南

它基于特征点的立体视觉和视觉惯性里程计技术,能够在没有先验知识的情况下,从单目、双目或RGB-D摄像头的输入中实时构建稠密三维地图,并实现相机的定位。通过正确配置环境、准备数据集和运行ORB-SLAM3,您可以实现高效的视觉SLAM系统,并获取相机在三维空间中的位姿。其中,[path_to_vocabulary]是ORB-SLAM3的词汇文件路径,[path_to_settings]是相机参数配置文件路径,[path_to_sequence]是输入图像的路径。运行ORB-SLAM3。

ByteNinja的博客 551

[系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向

娜璋AI安全之家于2020年8月18日开通,将专注于Python和安全技术,主要分享Web渗透、系统安全、CVE复现、威胁情报分析、人工智能、大数据分析、恶意代码检测等文章。真心想把自己近十年的所学所做所感分享出来,与大家一起进步。 系统安全系列作者将深入研究恶意样本分析、逆向分析、攻防实战等,通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步。第一篇文章先带领大家学习什么是逆向分析,然后详细讲解逆向分析的典型应用,接着通过OllyDbg工具逆向分析经典的游戏扫雷,再通过Cheat Engin

杨秀璋的专栏 2万+

[poj1569]Myacm Triangles--计算几何,判断一个点是否在三角形的内部

题目描述 There has been considerable archeological work on the ancient Myacm culture. Many artifacts have been found in what have been called power fields: a fairly small area, less than 100 meters squ...

dark_dawn的博客 754

工程师必读一次性讲明白系列(十三)眼图、阻抗匹配、信号一致性、射频匹配、电磁感应

概念主要作用影响因素解决方法眼图评估信号质量,显示失真和噪声噪声、信号失真、时序抖动改善信号源、使用低噪声组件阻抗匹配避免信号反射,提高传输效率阻抗不匹配、传输线路特性使用匹配电路、适配器信号一致性保证信号稳定准确传输传输线路、噪声干扰使用屏蔽、滤波器,选择合适线路射频匹配确保射频信号高效传输天线设计、阻抗不匹配使用射频匹配器、调整天线设计电磁感应防止电磁干扰对信号的影响设备之间的电磁干扰(EMI)屏蔽、接地、滤波器。

weixin_43199439的博客 158

zoj 1704 || poj 1569 Myacm Triangles

初看这题,zoj过人才100,poj才400+。。。还以为是啥难题。读了读题,怎么感觉也不像难题啊。。。写了写,结束符没注意0.。。WA了一次,然后A掉了,zoj1A了。。。我去。事实证明,做得人少的不一定是难题啊。。。给你一些点,然后求出一个三角形,满足三角形内部和边上不许有其他点,求这个三角形面积最大。最多才15个点,枚举下,15^4,这个也很小啊 = =。。我判断点在三角形内部用的叉积,在三点的方向一致即可。因为只有三点,不一定是顺时针还是逆时针,都考虑就好了。#include #include

小媛在努力~ 1335

基于加速科技ST2500的SN74HC00N芯片测试计划

实际上随着工艺的进步,器件内部和引脚间的绝缘氧化膜越来越薄,导致漏电流发生的概率更大,另外制造过程中的工艺缺陷导致的桥接,异物或封装过程中造成的芯片划伤、引裂,都会造成IC的漏电流偏大,有部分产品可能会表现出漏电流偏大,但功能正常,此类产品具有潜在的可靠性问题,漏电流测试的目的就是把具有此类缺陷的产品筛选出来,避免其流到最终产品造成更大的损失。漏电流的测试方法相对简单,就是根据产品手册或测试规范对被测引脚施加额定的电压,然后测量其输入或流出的电流是否符合相应的设计规范。74HC00引脚功能如表所示。

weixin_68288412的博客 1437

RT-DETR改进策略【RT-DETR和Mamba】| CVPR 2025:EfficientViM 压缩隐藏状态空间进行通道混合、单头设计减少内存操作,提升目标检测效率与精度

本文记录的是利用模块优化的目标检测网络模型。EfficientViM Block(基于隐藏状态混合器的状态空间对偶性模块) 的设计旨在,提升特征提取效率,同时兼顾全局依赖捕捉与局部细节保留。本文将深入研究的原理,并将其应用到中,通过重构特征提取流程、减少内存绑定操作、融合多阶段特征,增强模型在资源受限环境下的检测性能与速度。Depth Information Assisted Collaborative Mutual Promotion Network for Single Image DehazingLE

Limiiiing的博客 916

POJ 1569 Myacm Triangles

这题有两种方法,一种是用叉积来判断点是否是在三角形内或者三角形的边上。一开始脑子抽了,没法线叉积德时候 以下是叉积代码: // // main.cpp // Richard // // Created by 邵金杰 on 16/8/7. // Copyright © 2016年 邵金杰. All rights reserved. // #include #include #inclu

qq_33901573的博客 297

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

POJ1569--Myacm Triangles

题目大意:求三角形内不包含其他点的最大面积三角形 分析:枚举三个顶点,然后遍历其他点是否在这个三角形内,并且面积是否比之前的最大面积还大。题目中给出来了三点求面积的公式。判断点是否在三角形内有两种方法。 一、这个点与三角形任意两个顶点形成的共三个三角形的面积之和,等于当前三角形的面积,则说明在三角形内。 代码: #include #include #include #incl

Apple.Daily的专栏 584

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

POJ 1569 Myacm Triangles(判定点在三角形内)

POJ 1569 Myacm Triangles(判定点在三角形内) http://poj.org/problem?id=1569 题意: ZOJ 1704        给你n个点的坐标,要你找出面积最大的由3个点构成的三角形,且该三角形的内部或边上不能有点. 点数 分析:        由于点数枚举的三点首先要不共线),然后判断该三角形是否包含点. 如果不含点,那么就计算它的面积即可

code 1588

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

POJ1569 ZOJ1704 UVA10112 UVALive5330 Myacm Triangles【点与三角形+最值+暴力】

Myacm Triangles Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1277 Accepted: 715 Description There has been considerable archeological work on the ancient Myacm culture. Many artifacts...

海岛Blog 539

POJ 1569 Myacm Triangles【判定点在三角形内】

POJ 1569 Myacm Triangles http://poj.org/problem?id=1569 题意 给你n个点的坐标,要你找出面积最大的由3个点构成的三角形,且该三角形的内部或边上不...

逐梦者 475

poj 1569 Myacm Triangles 判断点在三角形内+求三角形面积

题意: 给ping

sepNINE的专栏 1049

POJ-1569 Myacm Triangles(计算几何)

Myacm Triangles Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1049   Accepted: 590 Description There has been considerable archeological work on the an

huatian5的博客 609

poj1569 Myacm Triangles

判断点是否在三角形上或者内; 三角形有向面积的两倍,以矩阵的形式比较好记; 在判断两个浮点数a和b是否相等时,尽量判断fabs(a-b)是否小于一个事先给定的eps,如1e-9.

The Slow Need To Start Eearly 456

poj 1569 Myacm Triangles

通过面积,,来判断是否在三角行内,, //allblue All Rights Reserved //..... #include #include #include #include #include #include #include #include #include #include #include #include #include #include us

allblue 472

POJ 1569 Myacm Triangles G++ 判断点是否在三角形的内部或边上 背

给出多个点坐标,找出面积最大的三角形。三角形面积公式:0.5 * [(y3 - y1)(x2 - x1) - (y2 - y1)(x3 - x1)]。 

woniupengpeng的专栏 542

18.12.17 POJ 1569 Myacm Triangles

描述 There has been considerable archeological work on the ancient Myacm culture. Many artifacts have been found in what have been called power fields: a fairly small area, less than 100 meters ...

dhc65376的博客 167

uva 10112 - Myacm Triangles

Problem B: Myacm Triangles Source file: triangle.{c, cpp, java, pas} Input file: triangle.in Output file: triangle.out There has been considerable archeological work

uva code 1351

如何判断点与三角形的位置关系

这个问题比较容易,写这篇文章的目的在于记录模板 如下图,点和三角形之间的位置关系有下面几种 其中点在三角形边上或者是在顶点上判断起来比较容易,只要枚举每一条边,如果发现这个点到两个端点之间的距离等于边长,那就是说这个点在三角形的一条边上,特判一下点和其他点重合的情况即可 那么如何判断点是在三角形外部还是内部呢? 如果从高中数学的角度来看,我们可能会想去把这三条直线方程写出来,通过看这个点是不是在这三条直线中间来判断,可能笔算起来比较容易,但是如果编程实现,那就太复杂了,不说点在直线两侧的若干情况需要.

ComingLiu的博客 4112
上一篇: POJ2007 Scrambled Polygon 凸多边形顶点输出
下一篇: CodeForces702B Powers of Two
Megumin
博客等级 码龄10年 3粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值