POJ 1654 Area(叉积计算多边形面积)

多边形叉积求面积法 对于一个多边形(可以为凹多边形)求其面积可以用叉积面积法,其证明过程十分简单,对于任意3个点A,B,C若其点成逆时针给出,那么三角形的面积就是,设A点是原点:(xb*yc-xc*yb)/2;这其实就是向量求面积得来的,这个结果为正,当点A,B,C顺时针给出时,其面积就会为负。我们求一个多边形面积时,我们就可以取o点(原点)来求,每求次按顺序取出多边形的连续两点,对所求结果求和即为面积。注... 阅读详情

题目链接:POJ 1654 Area

计算多边形面积,利用叉积可以方便的计算任意边数的多边形面积,凹凸多边形都可以。首先规定一个方向,然后选取多边形上的一个点作为起点,之后依次选择相邻两个点,计算这两个点与起点组成的三角形的有向面积。

这个题选取原点作为起点,之后计算有向面积相加就可以了。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>

using namespace std;

const int MAX_N = 1000000 + 100;
char dir[MAX_N];

void get_dir(int &x, int &y, char c)
{
    switch(c)
    {
        case '8':
            y++;
            break;
        case '2':
            y--;
            break;
        case '6':
            x++;
            break;
        case '4':
            x--;
            break;
        case '9':
            x++, y++;
            break;
        case '7':
            x--, y++;
            break;
        case '3':
            x++, y--;
            break;
        case '1':
            x--, y--;
            break;

    }
}
int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        scanf("%s", dir);
        int x1, y1, x2, y2;
        x1 = x2 = y1 = y2 = 0;
        int len = strlen(dir);
        get_dir(x1, y1, dir[0]);
        x2 = x1, y2 = y1;
        for(int i = 1; i < len - 1; i++)
        {
            get_dir(x2, y2, dir[i]);
            area += x1 * y2 - y1 * x2;
            x1 = x2, y1 = y2;
        }
        if(area < 0)
            area = (-1) * area;
        if(area % 2 == 0)
            printf("%lld\n", area / 2);
        else
            printf("%lld.5\n", area / 2);
    }
    return 0;
}


POJ 1654 Area (多边形面积 鞋带定理) Area 题意 从原点(0, 0)开始,向 8 个方向画线段,线段的起终点均为整点,问围成的多边形面积。 思路 任意一个多边形的面积等于按顺序求相邻两个点与原点组成的向量的叉积之和(这个也可以通过顺时针定积分求得)。 代码 #include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib> #define ll long long #define fi first #define 阅读详情

相关推荐

PyTorch实战:用FGSM攻击MNIST分类器(附可视化对比)

本文通过PyTorch实战演示了如何使用FGSM对抗攻击方法攻击MNIST手写数字分类器。文章详细解析了FGSM攻击原理,提供了从环境搭建、模型准备到攻击实施、可视化对比的完整代码实战流程,并探讨了对抗样本的生成与模型鲁棒性评估。

3a9bq4r8t2y的博客 216

叉积求多边形面积

/* 两个向量P1和P2的叉积P1^P2的绝对值看作是由点(0,0),p1,p2和p1+p2 四点围成的平行四边形的阴影面积,即原点,P1和P2围成的三角形面积S=|P1^P2|/2; 由此,我们可以利用叉积计算多边形的面积。设多边形的顶点按照顺时针方向排序为P0...p(n-1)。 为使多边形的边首边尾相接,另设Pn=p0. 多边形面积S=(|P(0)^P(1)+...+P(i)^p

u014068781的专栏 1244

别再只调API了!深度拆解Dify文件上传的两种传参方式(sys.file vs. inputs.upload_file)

本文深度解析Dify平台文件上传的两种传参方式——sys.file与inputs.upload_file,详细对比其设计原理、技术实现及适用场景。通过代码示例和性能分析,帮助开发者在本地大模型应用中做出精准技术选型,提升文件处理效率与系统稳定性。

weixin_29063979的博客 268

计算几何之用叉乘求多边形面积

一、理论基础二维向量叉乘得到的是对应平行四边形的有向面积,所以,只要保证按照逆时针对点排序,以下的算法都是可行的:①凸多边形,选取一个A0,从A1开始依次挑选相邻的两个点,求三角形面积,求和即可②非凸多边形,同上法,由于算的是有向面积,正负抵消就可以得到面积③任意多边形,选取其边外一点A0,同上法,答案亦相同可见有向面积的定义比起纯粹的面积定义更本质二、例题codevs1249题目弱了一点,但是还...

勉強しているユキさんです 1319

12、无人机系统的建模与仿真

本文深入探讨了无人机系统的建模与仿真技术,涵盖其发展需求、历史演变、动力学建模方法、常用参考框架与状态变量表示,并分析了在控制系统设计、操作员培训和子系统测试中的关键应用。文章还介绍了不同类型无人机(固定翼、旋翼、混合翼)在建模与仿真中的差异,提出了多学科融合、高精度实时仿真及VR/AR技术等未来发展趋势,并给出了实际建模与仿真的标准操作流程,为无人机系统的设计与优化提供了全面的技术支持与展望。

websocket5live的博客 196

【PyTorch项目实战】之ResNet系列:resnet18、resnet34、resnet50、resnet101、resnet152

ResNet (Residual Network) :是一种深度卷积神经网络(CNN)架构,其核心思想是引入残差学习(Residual Learning)机制,通过跳跃连接(skip connections)来解决深层网络训练中的退化问题。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 6375

叉乘计算多边形面积:poj 1654 Area

矢量积a×b的计算结果是垂直于a,b向量的矢量,其大小|a×b|=|a|·|b|·sin(a,b),模值的几何意义是以a,b为边的平行四边形的面积,利用向量的叉乘可以计算多边形的面积。题目大意输入一串数字,不同的数字表示不同的运动方向,计算运动围成的多边形的面积。解题思路 叉乘计算多边形面积,注意将方向存于方向数组dic[x][y]中,方便直接调用; 假设走1000000步围成正方形其面积6.25×

Hacker_vision 1636

使用mindie:2.0.RC2-800I-A2-py311-openeuler24.03-lts制作一个通用的模型推理性能测试的镜像

本文详细介绍了在NPU环境下进行模型推理性能测试的完整流程。首先配置了测试所需的环境和设备信息,包括Python 3.10.9和3.11.6版本、测试脚本和镜像文件。然后分步骤说明了镜像制作过程:创建特权容器、安装Python 3.10.9、配置VLLM环境,并详细描述了测试容器的启动方法。最后提供了镜像打包和使用指南,包括如何加载镜像、启动容器、运行测试脚本(以DeepSeek-32B模型为例)以及更换测试模型的步骤。整个过程涉及环境变量配置、权限设置和服务启动等关键操作。

m0_50105717的博客 1015

POJ - 1654 Area (计算几何 叉积 求多边形面积)

Area You are going to compute the area of a special kind of polygon. One vertex of the polygon is the origin of the orthogonal coordinate system. From this vertex, you may go step by step to the f...

YOONGI 237

清华源pip install出现ERROR: Could not find a version that satisfies the requirement的解决方案

本文主要介绍了清华源pip install出现ERROR: Could not find a version that satisfies the requirement的解决方案,希望能对学习python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

基于MATLAB的鲁棒主成分分析(Robust PCA)图像去噪

鲁棒主成分分析(Robust PCA)是一种有效的图像去噪方法,它能够在保持图像细节的同时去除噪声。本文将介绍如何使用MATLAB实现基于鲁棒PCA的图像去噪,并提供相应的源代码。它假设噪声是随机的、高斯分布的,并将图像分解为一个低秩矩阵和一个稀疏矩阵的和。低秩矩阵表示图像的结构和纹理信息,稀疏矩阵表示图像中的噪声和细节信息。接下来,我们将图像矩阵减去均值,得到规范化的图像矩阵。然后,我们将灰度图像转换为矩阵形式,并计算图像的均值。通过分离出低秩矩阵和稀疏矩阵,我们就得到了去噪后的图像和残差图像。

DevRevolt的博客 1125

(计算几何POJ step 8.1.1.2)POJ 1654 Area(使用叉积来计算多边形面积)

/* * POJ_1654.cpp * * Created on: 2013年11月16日 * Author: Administrator */ #include #include #include #include #include using namespace std; const double epsi = 1e-10; const double pi

黄俊东的专栏 3012

HyperLynx仿真(一)LineSim简单介绍

可以选择设置信号线与信号线之间默认的距离和信号线与同平面的平面之间的距离,这些设置根据工程师项目上经常使用的情况而设置,也可以选择不设置,在每次仿真时根据需要再对每一个仿真单独设置。仿真属性的设置对话框包含一般设置、 显示颜色设置、LineSim 设置、BoardSim 设置、 层叠默认设置、焊盘类型设置、仿真示波器默认设置、电路仿真器默认设置、电源完整性设置及高级设置。第一次使用HyperLynx软件时需要设置仿真相关环境,包括仿真软件的基本设置、模型库路径设置、仿真控制器控制、单位等。...

小幽余生不加糖 8953

poj 1654 Area(计算几何--叉积求多边形面积)

一个简单的用叉积求任意多边形面积的题,并不难,但我却错了很多次,double的数据应该是要转化为long long,我转成了int...这里为了节省内存尽量不开数组,直接计算,我MLE了一发...,最后看了下别人的才过,我的代码就不发了,免得误导,不得不说几何真是... 还有就是这个大神的代码,貌似G++,过不了,C++AC #include <iostream> #in...

weixin_30955341的博客 127

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ1654 Area【多边形的面积】

POJ1654Area http://poj.org/problem?id=1654 题意 在一个网格中,你当前在起始点,然后给你一些数字,每个数字表示你往当前位置的8个方向走一个单位或根号2个单位(斜线...

逐梦者 387

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pku 1654 Area 叉积求多边形面积

http://poj.org/problem?id=1654Area 给定起点(0,0)然后给出1 - 4 | 6 - 9 表示走的方向,输入数据保证能够回到原点。很裸的叉积求多边形面积。这里精度控制很坑爹,只要出现小数就取整数+0.5,double不能控制,所以用long long或者__int64来控制。 #include <cstdio> #include <cs...

weixin_30847865的博客 62

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

poj 1654 Area(叉积求多边形面积)

Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11106   Accepted: 3167 Description You are going to compute the area of a special kind of polygon. One v

志当存高远 689

POJ 1654 Area

POJ 1654 Area Description You are going to compute the area of a special kind of polygon. One vertex of the polygon is the origin of the orthogonal coordinate system. From this vertex, you may go step...

旺崽的博客 2966

【POJ1654】Area【叉积】

这道题本身出了n多个BUG,改到疯掉。。。

stoorz 235

POJ 1654 Area 多边形面积 三角形面积等于两边的向量的叉积的1/2

问题描述: 多边形面积问题(1-9表示各个方向) North 7 8 9 West 4 5 6 East 1 2 3 South 思路:将多边形两两相邻的点与原点相连组成多个三角形然后求三角形面积 三角形面积等于两边的向量的...

269

POJ1654-Area

Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14666   Accepted: 4124 Description You are going to compute the area of a special kind of polygon. One ver

ecjtu_acm_菜鸟—鱼尾尾 812

POJ 1654 Area [多边形面积]

题目链接:http://poj.org/problem?id=1654 题目的意思

1173

【POJ 1654】 【叉积】Area

【POJ 1654】 【叉积】Area 题目 poj 1654 解题思路 先处理出所有点 每一个多边形都可以被分割成很多个三角形 所以选定一个点,用叉积求出面积再除2的绝对值即为答案(叉积求的是平行四边形面积所以要除2) P.S 面积除2可能出现小数,但叉积必须要用long long不然会爆,所以特殊处理 代码 #include<iostream> #include<cstdio> #include<cmath> using namespace std; str

Y的博客 159

[poj 1654] Area {计算几何}

题目 http://poj.org/problem?id=1654 解题思路 原点为(0,0)(0,0)(0,0)时两点的叉积为(x1∗y2)−(x2∗y1)(x1*y2)-(x2*y1)(x1∗y2)−(x2∗y1) 因为在这道题中,多边形的面积一定是12的倍数\frac{1}{2}的倍数21​的倍数,所以可以直接用longlonglonglonglonglong来储存,毕竟在大数字面前dou...

Nowed 424
上一篇: POJ 1228 Grandpa's Estate(凸包)
下一篇: POJ 1265 Area(Pick定理)
小爷永远不死
博客等级 码龄15年 58粉丝 363原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值